class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
numA = 0
numB = 0
for i in range(len(a)):
numA = numA << 1
numA |= int(a[i])
for i in range(len(b)):
numB = numB << 1
numB |= int(b[i])
x = numA + numB
xString = ''
if x == 0:
return '0'
while x > 0:
# x: 10..curBit
# xString: curBit01..0
if x & 1 == 1:
xString = '1' + xString
else:
xString = '0' + xString
x = x >> 1
return xString
https://leetcode.com/problems/add-binary/#/description
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"