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){
string s="";
int c=0,apos=a.size()-1,bpos=b.size()-1; //c为进位
while(apos>=0||bpos>=0||c==1){
c += apos >= 0? a[apos--]-'0':0;
c += bpos >= 0? b[bpos--]-'0':0;
s=char(c%2+'0')+s; //考虑c可能等于3的情况,只能进1位
c /=2; //考虑c可能等于3的情况
}
return s;
}
};