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:
class Solution:
def addBinary(self, a: str, b: str) -> str:
m = len(a)
n = len(b)
if m > n:
b = "0" * (m - n) + b
else:
a = "0" * (n - m) + a
op = []
k = max(m, n)
i = k - 1
carry = 0
while i >= 0:
currval = int(a[i]) + int(b[i]) + carry
op.append(str(currval % 2))
carry = currval // 2
i -= 1
return "1" * carry + "".join(op[::-1])
Top comments (0)