题目:
解答:
从后向前加,结果存入新的字符串。
代码:
class Solution {
public:
string addBinary(string a, string b) {
string str;
string result;
char temp;
str = a.length() > b.length() ? a : b;
int carry = 0, sum;
int len = a.length() > b.length() ? b.length() : a.length();
for (int i = 0; i < len; i++)
{
sum = a[a.length() - 1 - i] - '0' + b[b.length() - 1 - i] - '0' + carry;
//结果
temp = sum % 2 + '0';
//附加到字符串前
result = temp + result;
carry = sum / 2;
}
for (int i = str.length() - len - 1; i >= 0; i--)
{
sum = carry + str[i] - '0';
//结果
temp = sum % 2 + '0';
//附加到字符串前
result = temp + result;
carry = sum / 2;
}
if (carry == 1)
result = "1" + result;
while (result[0] == '0' && result.length() > 1)
result = result.substr(1, result.length() - 1);
return result;
}
};