Leetcode 67. Add Binary 二进制求和

    xiaoxiao2025-03-03  30

    Leetcode 67. Add Binary 二进制求和

    标签: Leetcode


    题目地址:https://leetcode-cn.com/problems/add-binary/

    题目描述

    给定两个二进制字符串,返回他们的和(用二进制表示)。

    输入为非空字符串且只包含数字 1 和 0。

    示例 1:

    输入: a = "11", b = "1" 输出: "100"

    示例 2:

    输入: a = "1010", b = "1011" 输出: "10101"

    算法思想

    类似于上面的加1的题目,其实就是按照我们小时候的手动加法操作即可,用一个进位,然后从右向左边逐位计算。需要注意的是可能两个数字的长度不一样,这个时候需要把长的那个继续向前计算,如果有进位注意加上进位。

    python代码

    class Solution(object): def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ res = "" la = len(a) - 1 lb = len(b) - 1 count = 0 # 进位 while la>=0 and lb>=0: tmp = int(a[la]) + int(b[lb]) + count res = str(tmp%2) + res count = tmp//2 la -=1 lb -=1 if la<0: # 都统一到a上面进行操作 la = lb a = b while la>=0: tmp = int(a[la]) + count res = str(tmp % 2) + res count = tmp // 2 la -= 1 if count>0: res = str(count) + res return res
    最新回复(0)