Add Binary - LeetCode

1204 ワード

Add Binary - LeetCode
タイトル:
Given two binary strings, return their sum (also a binary string). For example, a =  "11" b =  "1" Return  "100" . 分析:
バイナリ加算、簡単です.私はaとbを反転して、ビット単位で加算することを選択しました.
コード:
class Solution:
    # @param a, a string
    # @param b, a string
    # @return a string
    def addBinary(self, a, b):
          a = a[::-1]
          b = b[::-1]
          if len(a) > len(b):
              temp = self.add(a,b)
          else:
              temp = self.add(b,a)
          s = ''
          for i in temp[::-1]:
              s += str(i)
          return s
    
    def add(self,a,b):
        temp = [int(i) for i in a]
        for i in range(len(b)):
                temp[i] = temp[i] + int(b[i])
                if temp[i] == 2:
                    j = i
                    while j < len(temp)-1:
                        if temp[j] == 2:
                            temp[j] = 0
                            temp[j+1] += 1
                        j += 1
        if temp[-1] >= 2:
              temp[-1] -= 2
              temp.append(1)
        return temp