注意进位:
class Solution {
public:
string addBinary(string s, string t) {
int flag = 0;
string res;
int i = s.size() - 1, j = t.size() - 1;
while (i >= 0 && j >= 0)
{
int sum = (s[i] - '0') +(t[j] - '0') + flag;
flag = sum / 2; //进位
sum %= 2;//和 0/1
res = char(sum + '0') + res;
i--;
j--;
}
while (i >= 0)
{
int sum = (s[i] - '0') + flag;
flag = sum / 2;
sum %= 2;
res = char(sum + '0') + res;
i--;
}
while (j >= 0)
{
int sum = (t[j] - '0') + flag;
flag = sum / 2;
sum %= 2;
res = char(sum + '0') + res;
j--;
}
if (flag != 0)
res = char(flag + '0') + res;
return res;
}
};