class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
alen=len(a)
blen=len(b)
totallen=max(alen, blen)
res=""
carry=0
for i in xrange(totallen):
if alen-i>0 and a[alen-i-1]=='1':
av=1
else:
av=0
if blen-i>0 and b[blen-i-1]=='1':
bv=1
else:
bv=0
v=av+bv+carry
if v&1:
res='1'+res
else:
res='0'+res
carry=v/2
if carry>0:
res='1'+res
return res