Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
string c;
int len1=a.length();
int len2=b.length();
int i=0,j=0;
int a1,b1;
int tmp=0;
while(1){
if(i<len1) a1=a[i++]-'0';
else a1=0;
if(j<len2) b1=b[j++]-'0';
else b1=0;
int sum=tmp+a1+b1;
if(sum==0){
c+='0';
tmp=0;
}
else{
if(sum==1){
c+='1';
tmp=0;
}
else{
if(sum==2){
c+='0';
tmp=1;
}
else{
if(sum==3){
c+='1';
tmp=1;
}
}
}
}
if(i>=len1 && j>=len2 && tmp==0)
break;
}
reverse(c.begin(),c.end());
return c;
}
};