【题目】
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
【解析】
字符串类型的二进制加法,从后往前加,再设置一个进位就ok了。
【代码】
public String addBinary(String a, String b) {
StringBuilder res = new StringBuilder("");
int m = a.length();
int n = b.length();
int flag = 0;
int i=m-1,j=n-1;
while(i>=0||j>=0||flag>0){
if(i>=0) flag=a.charAt(i)-'0'+flag;
if(j>=0) flag=b.charAt(j)-'0'+flag;
if(flag<2){
res.append(flag);
flag=0;
}
else if(flag>2){
res.append(flag-2);
flag=1;
}
else{
res.append("0");
flag=1;
}
i--;
j--;
}
return res.reverse().toString();
}