二进制求和最蠢写法(没有用bin()和int())后边附上使用int和bin版本
class Solution:
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
a = list(map(int,list(a)))
b = list(map(int,list(b)))
tmp = 0
res = ''
while a and b:
val = a.pop() + b.pop() + tmp
if val == 3:
res = str('1') + res
tmp = 1
elif val == 2:
res = str('0') + res
tmp = 1
elif val == 1:
res = str('1') + res
tmp = 0
else:
res = str('0') + res
tmp = 0
if len(a) == 0:
while b:
cc = b.pop() + tmp
if cc == 2:
res = str('0') + res
tmp = 1
elif cc == 1:
res = str('1') + res
tmp = 0
break
else:
res = str('0') + res
tmp = 0
break
b = map(str,b)
preres = "".join(b)
else:
while a:
cc = a.pop() + tmp
if cc == 2:
res = str('0') + res
tmp = 1
elif cc == 1:
res = str('1') + res
tmp = 0
break
else:
res = str('0') + res
tmp = 0
break
a = map(str,a)
preres = "".join(a)
if tmp == 1:
result = str(tmp) + preres + res
else:
result = preres + res
return result
class Solution:
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
a, b = int(a, 2), int(b, 2)
return bin(a + b)[2:]