moonlightshadow123
6/26/2017 - 3:28 AM

67. Add Binary

  1. Add Binary
class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        numA = 0
        numB = 0
        for i in range(len(a)):
            numA = numA << 1
            numA |= int(a[i])
        for i in range(len(b)):
            numB = numB << 1
            numB |= int(b[i])
        x = numA + numB
        xString = ''
        if x == 0:
            return '0'
        while x > 0:
            # x: 10..curBit
            # xString:    curBit01..0
            if x & 1 == 1:
                xString = '1' + xString
            else:
                xString = '0' + xString
            x = x >> 1
        return xString

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

Given two binary strings, return their sum (also a binary string).

For example, a = "11" b = "1" Return "100"