注意进位:
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;
}
};
二进制数相加
本文介绍了一种算法,用于将两个二进制字符串相加并返回结果的二进制字符串形式。通过逐位相加并处理进位来实现,确保结果正确。

921

被折叠的 条评论
为什么被折叠?



