给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。
时间: 2023-11-05 22:22:29 浏览: 217
好的,这是一个二进制加法问题。我可以给你一个简单的实现。
我们可以从字符串的末尾开始处理,将它们转换成数字,逐位相加,然后将结果转换成二进制形式。如果有进位,需要将进位加到下一位的计算中。
以下是实现的代码,你可以参考一下:
```python
def addBinary(a: str, b: str) -> str:
carry = 0
res = ""
i, j = len(a) - 1, len(b) - 1
while i >= 0 or j >= 0 or carry:
num1 = int(a[i]) if i >= 0 else 0
num2 = int(b[j]) if j >= 0 else 0
carry, curr = divmod(num1 + num2 + carry, 2)
res = str(curr) + res
i -= 1
j -= 1
return res
```
这段代码的时间复杂度为 $O(n)$,其中 $n$ 是 a 和 b 的长度之和。
阅读全文