给定两个二进制字符串,返回他们的和(用二进制表示)。
样例
a = 11
b = 1
返回 100
/**
* @param a a number
* @param b a number
* @return the result
* 主要考虑进位 !!最后一位的进位
*/
public String addBinary(String a, String b) {
// Write your code here
int sum=0;//记录每一位求和的结果
int al=a.length()-1;
int bl=b.length()-1;
String result="";
while(al>=0||bl>=0){
if(al>=0){
sum+=a.charAt(al)-'0';
al--;
}
if(bl>=0){
sum+=b.charAt(bl)-'0';
bl--;
}
if(sum==0){
result="0"+result;
sum=0;
}
if(sum==1){
result="1"+result;
sum=0;
}
if(sum==2){
result="0"+result;
sum=1;
}
if(sum==3){//均为1且有进位
result="1"+result;
sum=1;
}
}
if(sum==1)
result = "1" + result; //最后一位有进位
return result;
}
}