67. Add Binary
Question 67
https://leetcode.com/problems/add-binary/
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:
Input: a = "11", b = "1"
Output: "100"Example 2:
Input: a = "1010", b = "1011"
Output: "10101"Answer
v1. use bin() (100%)
v2. use Recursively (45%)
class Solution:
def addBinary(self, a, b):
return ( bin(int(a,2)+int(b,2) ) )[2:]
## second way
# return bin(eval('0b'+a) + eval('0b'+b))[2:]
class Solution:
def addBinary(self, a, b):
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[:-1], b[:-1] ), "1" ) + "0"
elif( a[-1] == "0" and b[-1] == "0" ):
return self.addBinary( a[:-1], b[:-1] ) + "0"
else:
return self.addBinary( a[:-1], b[:-1] ) + "1"Last updated