leetcode day10 二进制求和

1.题目描述

在这里插入图片描述

2.代码构思(debug)

方法1
考虑一个最朴素的方法:先将 aa 和 bb 转化成十进制数,求和后再转化为二进制数。利用 Python 和 Java 自带的高精度运算,我们可以很简单地写出这个程序:

class Solution:

def addBinary(self, a: str, b: str) -> str:
    a, b = int(a, 2), int(b, 2)
    return bin(a + b)[2:]

方法2

class Solution:

def addBinary(self, a: str, b: str) -> str:
    if not a and not b:
        return 

    r, p = '', 0
    d = len(b) - len(a)
    a = '0' * d + a
    b = '0' * -d + b
    for i, j in zip(a[::-1], b[::-1]):
        s = int(i) + int(j) + p
        r = str(s % 2) + r
        p = s // 2
        
    return '1' + r if p else r

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值