美文网首页
剑指 Offer II 002. 二进制加法

剑指 Offer II 002. 二进制加法

作者: minningl | 来源:发表于2022-01-29 22:51 被阅读0次

题目:

给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。

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

示例 1:

输入: a = "11", b = "10"
输出: "101"

示例 2:

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

提示:

每个字符串仅由字符 '0' 或 '1' 组成。
1 <= a.length, b.length <= 10^4
字符串如果不是 "0" ,就都不含前导零。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/JFETK5
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Python代码:

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """

        ret = ''
        flag = 0
        while a or b or flag:
            item1 = int(a[-1]) if a else 0
            item2 = int(b[-1]) if b else 0
            value = (item1+item2+flag)%2
            flag = (item1+item2+flag)/2
            ret = str(value)+ret
            a = a[:-1]
            b = b[:-1]
        return ret

相关文章

网友评论

      本文标题:剑指 Offer II 002. 二进制加法

      本文链接:https://www.haomeiwen.com/subject/adofkrtx.html