leetcode -- Add Binary -- 简单要了解

本文详细解释了二进制加法原理,并提供了一个简洁高效的Python代码实现。通过实例演示,读者可以深入理解如何将二进制加法转化为计算机可执行的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

知道二进制加法原理即可,这里只需要知道进位是除数,余数是结果就行。最后不要忽略reg里面的值

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        if not a:
            return b
        elif not b:
            return a

        tmp_str = ''.join(['0'] * abs(len(a) - len(b)))
        if tmp_str:
            if len(a) > len(b):
                b = tmp_str + b
            else:
                a = tmp_str + a

        reg = 0
        res = ''
        for i in xrange(len(a) - 1, -1, -1):
            tmp = int(a[i]) + int(b[i]) + reg
            mod, inc = tmp % 2, tmp / 2
            res = str(mod) + res
            #print (reg,tmp, mod, inc, res)
            reg = inc
        if reg != 0:
            res = '1' + res
        return res

看这个博客。整理的解题思路

http://c4fun.cn/blog/2014/03/20/leetcode-solution-02/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值