二进制求和其实就是异或运算,同时用一个变量记录进位。由低位逐渐向高位计算。还需要注意,调整两个加数的长度,让它们长度相同,长度短的数字前面补0。
class Solution:
def addBinary(self, a: str, b: str) -> str:
res, p = '', 0
max_len = len(a) - len(b)
a = '0' * -max_len + a
b = '0' * max_len + b
for i, j in zip(a[::-1], b[::-1]):
pop = int(i) + int(j) + p
res = str(pop % 2) + res
p = pop //2
if p != 0:
res = '1'+res
return res