1、用或不能用与,注意细节
2、数组高位表示数学低位,所以结果要注意先反转
class Solution {
public String addBinary(String a, String b) {
if(a==null){
return b;
}
if(b==null){
return a;
}
//注意记录的是从后往前算的结果。
StringBuilder sb=new StringBuilder();
char[] as=a.toCharArray();
char[] bs=b.toCharArray();
int la=as.length-1;
int lb=bs.length-1;
int carry=0;
int sum=0;
while(la>=0||lb>=0){
sum=carry;
if(la>=0){
sum+=(as[la]-'0');
la--;
}
if(lb>=0){
sum+=(bs[lb]-'0');
lb--;
}
sb.append(sum%2);
carry=sum/2;
}
if(carry==1){
sb.append(1);
}
return sb.reverse().toString();
}