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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章