问题:
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 index = max(a.length(), b.length());
string result (index + 1, '0');
int carry = 0;
int i = a.length() - 1;
int j = b.length() - 1;
while (i>= 0 || j >= 0 || carry > 0) {
int a_num = (i >= 0? a[i --] - '0' : 0);
int b_num = (j >= 0? b[j --] - '0' : 0);
result[index --] = ((a_num + b_num + carry) % 2) + '0';
carry = ((a_num + b_num + carry) > 1);
}
if (result[0] == '0')
return result.substr(1);
return result;
}
};