编写一个python程序,给你两个二进制字符串a和b,以二进制字符串的形式返回它们的和。
时间: 2023-05-30 16:04:00 浏览: 96
python 实现两数之和
5星 · 资源好评率100%
```
def addBinary(a: str, b: str) -> str:
carry = 0
result = ""
i, j = len(a)-1, len(b)-1
while i >= 0 or j >= 0:
sum = carry
if i >= 0:
sum += int(a[i])
i -= 1
if j >= 0:
sum += int(b[j])
j -= 1
result = str(sum % 2) + result
carry = sum // 2
if carry != 0:
result = "1" + result
return result
```
该函数采用了类似于竖式加法的方式,从两个字符串的末尾开始逐位相加。carry表示进位,初始值为0。sum表示当前位的和,初始值为carry。在循环中,如果字符串a和b还有位数,则将当前位加到sum中,并将i和j分别减1。将sum模2的结果添加到结果字符串result的开头。如果sum大于等于2,则carry设为1,否则为0。循环结束后,如果carry不为0,则在结果字符串result的开头加上1。最后返回结果字符串result。
阅读全文