Consider setting a carry identifier
class Solution:
def addBinary(self, a: str, b: str) -> str:
while len(a) < len(b):
a = '0' + a
while len(a) > len(b):
b = '0' + b
sumstr = str(int(a) + int(b))
sumstr = [letter for letter in sumstr]
length = len(sumstr)
jinwei = False
for i in range(length):
cur = length - i - 1
if sumstr[cur] == '2':
if jinwei == True:
sumstr[cur] = '1'
elif jinwei == False:
sumstr[cur] = '0'
jinwei = True
elif sumstr[cur] == '1':
if jinwei == True:
sumstr[cur] = '0'
elif jinwei == False:
sumstr[cur] = '1'
jinwei = False
elif sumstr[cur] == '0':
if jinwei == False:
sumstr[cur] = '0'
elif jinwei == True:
sumstr[cur] = '1'
jinwei = False
res = ''
for letter in sumstr:
res += letter
if jinwei == True:
res = '1' + res
return res