力扣面试150题--二进制求和
Day 88
题目描述
思路
复习一下二进制加法,利用jin来记录是否有进位,先对两个字符串进行相加,直到一个字符串加完了,单独处理剩下的那个字符串。
class Solution {public static String addBinary(String a, String b) {int i1=a.length()-1;int i2=b.length()-1;int jin=0;StringBuilder res=new StringBuilder();while(i1>=0&&i2>=0){char x=a.charAt(i1);char y=b.charAt(i2);int sum=(x-'0')+(y-'0')+jin;res.append(sum%2);jin=sum/2;i1--;i2--;}while(i1>=0){char x=a.charAt(i1);int sum=(x-'0')+jin;res.append(sum%2);jin=sum/2;i1--;}while (i2>=0){char x=b.charAt(i2);int sum=(x-'0')+jin;res.append(sum%2);jin=sum/2;i2--;}if(jin==1){res.append('1');}return res.reverse().toString();
}
}