Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1 or 0.
Example 1:
1 2
Input: a = "11", b = "1" Output: "100"
Example 2:
1 2
Input: a = "1010", b = "1011" Output: "10101"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
classSolution(object): defaddBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ #add two binary from back to front, I think it is very self explained, when 1+1 we need a carry. if len(a)==0: return b if len(b)==0: return a if a[-1] == '1'and b[-1] == '1': return self.addBinary(self.addBinary(a[0:-1],b[0:-1]),'1')+'0' if a[-1] == '0'and b[-1] == '0': return self.addBinary(a[0:-1],b[0:-1])+'0' else: return self.addBinary(a[0:-1],b[0:-1])+'1'