Python每日一练算法之二进制求和

问题描述:

给定两个二进制字符串,返回他们的和(二进制表示)

问题示例:

输入a=11,b=1,输出res = 100

代码实现:

class Solution:
   def addBinary(self,a,b):
      indexa = len(a)-1
      indexb = len(b)-1
      carry = 0
      sum = " "
      while indexa >=0 or indexb >= 0:
         x = int(a[indexa]) if indexa >= 0 else 0
         y = int(a[indexb]) if indexb >= 0 else 0
         if (x+y+carry)%2 == 0:
            sum = '0' + sum
         else:
            sum = "1" + sum
         carry = (x+y+carry)/2
         indexa,indexb = indexa-1,indexb-1
      if carry == 1:
         sum = "1" + sum
      return sum

if __name__ =='__main__':
   a = input("请输入字符串1:")
   b = input("请输入字符串2:")
   temp = Solution()
   res = temp.addBinary(a,b)
   print(res)

输出:

请输入字符串1:11
请输入字符串2:1
100 

猜你喜欢

转载自blog.csdn.net/qq_42642142/article/details/106266368