Monday, August 17, 2015

Leetcode 67. Add Binary

https://leetcode.com/problems/add-binary/

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 ms

Solution 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