Given two binary strings, return their sum (also a binary string).

The input strings are both non-empty and contains only characters 1 or 0.

Example 1:

Input: a = "11", b = "1"
Output: "100"

Example 2:

Input: a = "1010", b = "1011"
Output: "10101"

 

Constraints:

  • Each string consists only of '0' or '1' characters.
  • 1 <= a.length, b.length <= 10^4
  • Each string is either "0" or doesn't contain any leading zero.

 

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        ans = ''
        carry = 0                #进位标准位
        a = list(a)              #把a变成一个列表
        b = list(b)              #把b变成一个列表

        while a or b or carry:
            if a:
                carry += int(a[-1])
                a.pop()
            if b:
                carry += int(b[-1])
                b.pop()
            
            ans = str(carry %2) + ans   #把标志位余2 是这一位确切的数字
            carry = carry//2            
        
        return ans

 

posted on 2020-05-21 06:12  闲云潭影  阅读(154)  评论(0编辑  收藏  举报