Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
public class Solution {
public String addBinary(String a, String b) {
int i = a.length()-1;
int j = b.length()-1;
int flag = 0;
StringBuilder sb = new StringBuilder();
while(i>=0&&j>=0){
int t = a.charAt(i)-'0'+b.charAt(j)-'0'+flag;
flag = t>=2?1:0;
t = t%2;
sb.append(t);
i--;j--;
}
while(i>=0){
int t = a.charAt(i)-'0'+flag;
flag = t>=2?1:0;
t = t%2;
sb.append(t);
i--;
}
while(j>=0){
int t = b.charAt(j)-'0'+flag;
flag = t>=2?1:0;
t = t%2;
sb.append(t);
j--;
}
if(flag==1) sb.append(1);
return sb.reverse().toString();
}
}