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) {
// Start typing your Java solution below
// DO NOT write main() function
int l1=a.length(),l2=b.length();
int k=Math.max(l1,l2)+1;
int res[]=new int[k];
int i=l1-1,j=l2-1,x=0,y=0;
int carry=0;
while(k>0){
x=0; y=0;
if(i>=0) x=a.charAt(i)-'0';
if(j>=0) y=b.charAt(j)-'0';
res[k-1]=x^y^carry;
carry=(x&y)|(x&carry)|(y&carry);
i--;
j--;
k--;
}
StringBuilder s=new StringBuilder();
i=0;
while(i<res.length&&res[i]==0) i++;
if(i==res.length) return "0";
for(;i<res.length;i++) s.append(res[i]);
return new String(s);
}
}