Given two binary strings, return their sum (also a binary string).
For example,
a =
b =
Return
a =
"11"
b =
"1"
Return
"100"
.
string addBinary(string a, string b) {
string ret;
int i = a.size() - 1;
int j = b.size() - 1;
int carry = 0;
while(i >= 0 || j >= 0 || carry > 0)
{
int da = i < a.size() ? a[i] - '0' : 0;
int db = j < b.size() ? b[j] - '0': 0;
//the value
int d = (da + db + carry) % 2;
//the carry
carry = (da + db + carry) / 2;
ret.insert(ret.begin(),1, d + '0');
i--;
j--;
}
return ret;
}
No comments:
Post a Comment