LeetCode67.二进制求和 用c++写出,确保可以运行
时间: 2024-10-04 07:03:01 浏览: 45
LeetCode题目67叫做“二进制求和”,其实这是一个字符串操作的问题,要求我们将两个非空的二进制字符串相加并返回结果。我们可以逐位相加,考虑进位问题。以下是用C++编写的解决方案:
```cpp
class Solution {
public:
string addBinary(string a, string b) {
int carry = 0;
int i = a.length() - 1, j = b.length() - 1;
string result = "";
while (i >= 0 || j >= 0 || carry != 0) {
int sum = carry;
if (i >= 0)
sum += a[i] - '0';
if (j >= 0)
sum += b[j] - '0';
carry = sum / 2;
result = char(sum % 2 + '0') + result;
i--;
j--;
}
return result;
}
};
```
在这个代码中,我们从两个字符串的尾部开始,计算当前位的和以及进位,并将结果添加到结果字符串的前面。当所有位都处理完毕且没有进位时,返回最终的结果。
阅读全文