leetcode67. Add Binary

Posted seyjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode67. Add Binary相关的知识,希望对你有一定的参考价值。

题目如下:

解题思路:首先将较短的输入前面补0,保证a和b长度一样,然后逐位相加再加上进位的值。如果和为3,当前位值为1,进位1;如果为2,当前位值为0,进位为1;否则不进位,当前位值即为和的值。

代码如下:

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        diff = abs(len(a) - len(b))
        if len(a) < len(b):
            a = \'0\'*diff + a
        elif len(b) < len(a):
            b= \'0\'*diff + b
        carry = 0
        res = \'\'
        for i,j in zip(a[::-1],b[::-1]):
            v = int(i) + int(j) + carry
            if v == 3:
                v = 1
                carry = 1
            elif v == 2:
                v = 0
                carry = 1
            else:
                carry = 0
            res = str(v) + res
        if carry > 0:
            res = str(carry) + res
        return res
        

 

以上是关于leetcode67. Add Binary的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode----67. Add Binary(java)

leetcode67. Add Binary

LeetCode 67. Add Binary

LeetCode 67. Add Binary

Leetcode 67. Add Binary

leetcode 67 Add Binary