欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode二进制求和

程序员文章站 2024-03-22 14:59:58
...
"""
给定两个二进制字符串,返回他们的和(用二进制表示)。

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

示例 1:

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

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



class Solution:
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        carry = ''
        res = ''
        while a or b or carry:
            tmp = (int(a[-1]) if a else 0) + (int(b[-1]) if b else 0) + (1 if carry else 0)
            if tmp == 3:
                res = '1' + res
                carry = '1'
            elif tmp == 2:
                res = '0' + res
                carry = '1'
            else:
                res = str(tmp) + res
                carry = ''
            a = a[:-1] if a else ''
            b = b[:-1] if b else ''
        return res