题目
https://leetcode.cn/problems/JFETK5/
思想
简单模拟
代码
class Solution:
def addBinary(self, a: str, b: str) -> str:
cnt = 0
res = []
# 翻转两个字符串
a = "".join(reversed(a))
b = "".join(reversed(b))
flag = 0 # 是否有进位
while(cnt< len(a) and cnt < len(b)):
tmp = int(a[cnt]) + int(b[cnt]) + flag
flag = tmp//2 # 对2
tmp = tmp% 2
res.append(tmp)
cnt += 1
# 根据最后的进位再做处理
while( cnt <len(a) ):
tmp = int(a[cnt]) + flag
flag = tmp //2
tmp = tmp%2
res.append(tmp)
cnt += 1
while(cnt < len(b) ):
tmp = int(b[cnt]) + flag
flag = tmp //2
tmp = tmp%2
res.append(tmp)
cnt += 1
if(flag):
res.append(flag)
res.reverse()
return "".join(list(map(str,res)))
# b = "10111"
# a = "111"
# s = Solution()
# res = s.addBinary(a,b)
# print(res)