Still two solutions: one to use built-in function, another to do it normally.
Solution 1:
class Solution:
# @param {string} a
# @param {string} b
# @return {string}
def addBinary(self, a, b):
return bin(int(a,2)+int(b,2))[2:]
Run Time: 60 msSolution 2:
# T:O(n) S:O(1)
class Solution:
# @param a, a string
# @param b, a string
# @return a string
def addBinary(self, a, b):
aIndex, bIndex, flag, s = len(a)-1, len(b)-1, 0, ''
while aIndex>=0 and bIndex>=0:
num = int(a[aIndex])+int(b[bIndex])+flag
flag = num/2; num %= 2
s = str(num) + s
aIndex -= 1; bIndex -= 1
while aIndex>=0:
num = int(a[aIndex])+flag
flag = num/2; num %= 2
s = str(num) + s
aIndex -= 1
while bIndex>=0:
num = int(b[bIndex])+flag
flag = num/2; num %= 2
s = str(num) + s
bIndex -= 1
if flag == 1:
s = '1' + s
return s
Run Time: 60 ms
No comments:
Post a Comment