Day 88
题目描述

思路
复习一下二进制加法,利用jin来记录是否有进位,先对两个字符串进行相加,直到一个字符串加完了,单独处理剩下的那个字符串。
java
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();
}
}