LeetCode Problem 67-Add Binary

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

输入为非空字符串且只包含数字 10

示例 1:

1
2
输入: a = "11", b = "1"
输出: "100"

示例 2:

1
2
输入: a = "1010", b = "1011"
输出: "10101"

思路一

Add Two Numbers 思路类似。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution:
    def addBinary(self, a: str, b: str) -> str:
        rs, carry = '', 0
        i, j = len(a) - 1, len(b) - 1
        while i >= 0 or j >= 0 or carry:
            s = carry
            if i >= 0:
                s += ord(a[i]) - ord('0')
                i -= 1
            if j >= 0:
                s += ord(b[j]) - ord('0')
                j -= 1
            carry, s = s // 2, s % 2
            rs += chr(ord('0') + s)
        return rs[::-1]

相似问题

  1. Add Two Numbers
  2. Multiply Strings
  3. Plus One
  4. Add to Array-Form of Integer
此时不赞何时赞!