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
and b
consist only of '0'
or '1'
characters.Source
def add_binary(a, b):
"""Cheating method."""
return bin(int(a, 2) + int(b, 2))[2:] # int('s', n) --> convert 's' into number base n
def add_binary(a, b):
pos1 = len(a)-1
pos2 = len(b)-1
carry = 0
result = ""
while carry or pos1 >= 0 or pos2 >= 0:
s1 = 0 if pos1 < 0 else int(a[pos1])
s2 = 0 if pos2 < 0 else int(b[pos2])
result += str((s1 + s2 + carry) % 2)
carry = (s1 + s2 + carry) // 2
pos1 -= 1
pos2 -= 1
return result[::-1]
a = "11"
b = "1"
add_binary(a, b)
'100'
a = "1010"
b = "1011"
add_binary(a, b)
'10101'
a = "1"
b = "1011"
add_binary(a, b)
'1100'