[LeetCode]067. Add Binary

本文介绍了如何将两个二进制字符串相加并返回结果,包括处理进位和特殊情况。

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

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"

Return "100".


Solution: string manipulation, pay attention to "carry"

Running Time: O(n)

class Solution:
    # @param a, a string
    # @param b, a string
    # @return a string
    def addBinary(self, a, b):
        lenA = len(a)
        lenB = len(b)
        if lenA < lenB:
            tempA = '0'*(lenB-lenA) + a
            tempB = b
        else:
            tempA = a
            tempB = '0'*(lenA-lenB) + b
        len_AB = max(lenA, lenB)
        result = [0] * len_AB
        flag = 0
        for i in range(len_AB-1, -1, -1):
            sumI = int(tempA[i]) + int(tempB[i]) + flag
            if sumI == 3:
                result[i] = 1
                flag = 1
            elif sumI == 2:
                result[i] = 0
                flag = 1
            elif sumI == 1:
                result[i] = 1
                flag = 0
        if flag == 1:
            result.insert(0, 1)
        return ''.join(str(i) for i in result)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值