For example,
a = "11"
b = "1"
a = "11"
b = "1"
Return "100".
这题的做法和前面一题plus one 一样,区别在于需要将两个string先相加,再判断是否要进位。
直接上代码吧。
class Solution:
# @param a, a string
# @param b, a string
# @return a string
def addBinary(self, a, b):
a=list(a)
b=list(b)
for i in range(len(a)):
a[i]=int(a[i])
for i in range(len(b)):
b[i]=int(b[i])
lena=len(a)
lenb=len(b)
if lena<lenb:
a,b=b,a
itera=len(a)-1
iterb=len(b)-1
while itera>=0 and iterb>=0:
a[itera]+=b[iterb]
itera-=1
iterb-=1
for i in reversed(range(len(a))):
digit=a[i]%2
carry=a[i]/2
a[i]=digit
if i>0:
a[i-1]+=carry
if carry==1:
a.insert(0,1)
for i in range(len(a)):
a[i]=str(a[i])
return "".join(a)
解析进位二进制加法操作的Python实现
本文详细介绍了如何使用Python语言解决二进制加法问题,特别关注了进位处理过程,通过将字符串转换为整数进行相加,并在相加后检查是否需要进位。代码实例清晰地展示了这一过程,适合初学者理解和实践。
790

被折叠的 条评论
为什么被折叠?



