地址:点击打开链接
二进制计算,主要注意标志位的判断
答案:
class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
ret = ""
flag = 0
length = len(b) if len(a) >= len(b) else len(a)
while length > 0:
cur = int(a[-1]) + int(b[-1]) + flag
a = a[:-1]
b = b[:-1]
if cur >= 2:
flag = 1
cur = cur % 2
ret = str(cur) + ret
else:
flag = 0
ret = str(cur) + ret
length -= 1
if a:
while a:
cur = int(a[-1]) + flag
if cur >= 2:
flag = 1
cur = cur % 2
ret = str(cur) + ret
a = a[:-1]
else:
ret = str(cur) + ret
a = a[:-1]
ret = a + ret
return ret
if b:
while b:
cur = int(b[-1]) + flag
if cur >= 2:
flag = 1
cur = cur % 2
ret = str(cur) + ret
b = b[:-1]
else:
ret = str(cur) + ret
b = b[:-1]
ret = b + ret
return ret
if flag:
ret = str(flag) + ret
return ret