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) {
int len1 = a.length()-1;
int len2 = b.length()-1;
int len = len1 > len2? len1:len2;
if(len1 > len2){
b.insert(0,len1-len2,'0');
}else if(len1 < len2){
a.insert(0,len2-len1,'0');
}
int flag = 0;
string ans;
int temp=0;
while (len > 0){
temp=(a.at(len)-'0')+(b.at(len)-'0')+flag;
if(temp>=2) flag=1;
else flag=0;
temp=temp%2;
ans.insert(0,1,(char)('0'+temp));
len--;
}
temp=(a.at(len)-'0')+(b.at(len)-'0')+flag;
ans.insert(0,1,temp%2+'0');
if(temp>=2){
ans.insert(0,1,'1');
}
return ans;
}
};