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) {
vector<char> sum;
int carry=0;
int asize=a.length()-1,bsize=b.length()-1;
while(asize>=0&&bsize>=0){
int atemp=a[asize--]-'0';
int btemp=b[bsize--]-'0';
sum.push_back((atemp+btemp+carry)%2+'0');
carry=(atemp+btemp+carry)/2;
}
while(asize>=0){
int atemp=a[asize--]-'0';
sum.push_back((atemp+carry)%2+'0');
carry=(atemp+carry)/2;
}
while(bsize>=0){
int btemp=b[bsize--]-'0';
sum.push_back((btemp+carry)%2+'0');
carry=(btemp+carry)/2;
}
if(carry==1){
sum.push_back('1');
}
reverse(sum.begin(),sum.end());
string re(sum.begin(),sum.end());
return re;
}
};