67. Add Binary
Description
Given two binary strings a
and b
, return their sum as a binary string.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
Constraints:
1 <= a.length, b.length <= 104
a
andb
consist only of'0'
or'1'
characters.- Each string does not contain leading zeros except for the zero itself.
Solution
add-binary.py
class Solution:
def addBinary(self, a: str, b: str) -> str:
carry = 0
n1, n2 = len(a), len(b)
i, j = n1 - 1, n2 - 1
res = []
while i >= 0 or j >= 0 or carry > 0:
if i >= 0:
carry += int(a[i] == "1")
i -= 1
if j >= 0:
carry += int(b[j] == "1")
j -= 1
res.append(str(carry % 2))
carry //= 2
return "".join(res[::-1])