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 alen=a.size()-1;
int blen=b.size()-1;
string result="";
int carry=0;
while(alen>=0||blen>=0)
{
int p=alen>=0?a[alen--]-'0':0;
int q=blen>=0?b[blen--]-'0':0;
int sum=p+q+carry;
result=to_string(sum%2)+result;
carry=sum/2;
}
result=carry==1?"1"+result:result;
return result;
}
};
二刷时,要特别注意,string的起始是左边,也即是1010的s[0]是1