其他分享
首页 > 其他分享> > 【LeetCode】67. 二进制求和

【LeetCode】67. 二进制求和

作者:互联网


解题思路:

1:将两个字符串从最后一位相加,逢二进一,每一个数字都加,不够的补0,

记录每次加过的数连接一起,最后倒过来输出

        result = ""
        carry = 0   #设置起始进位
        p = len(a)-1
        q = len(b)-1
        while p>=0 or q>=0 or carry!=0:
            numA = int(a[p]) if p>=0 else 0
            numB = int(b[q]) if q>=0 else 0
            sum = numA + numB + carry   #计算上下相加的和
            carry = 1 if sum>=2 else 0  #计算下一个进位
            sum = sum-2 if sum >=2 else sum
            result+=str(sum)                #每求一次和保存连接,结果是倒的
            p-=1
            q-=1
        return result[::-1]    #倒序输出

2:直接将二进制数转换为十进制计算,最后返回二进制

return bin(int(a,2)+int(b,2))[2:]

标签:二进制,sum,else,int,result,67,carry,LeetCode
来源: https://blog.csdn.net/m0_59310933/article/details/122849441