首页 > 其他 > 详细

【leetcode】67. Add Binary

时间:2018-07-06 21:54:09      阅读:207      评论:0      收藏:0      [点我收藏+]

题目如下:

技术分享图片

解题思路:首先将较短的输入前面补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
        

 

【leetcode】67. Add Binary

原文:https://www.cnblogs.com/seyjs/p/9275618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!