美文网首页
[Math/String]67. Add Binary

[Math/String]67. Add Binary

作者: 野生小熊猫 | 来源:发表于2019-02-09 05:14 被阅读0次
    • 分类:Math/String
    • 时间复杂度: O(n)

    67. Add Binary

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

    The input strings are both non-empty and contains only characters 1 or 0.

    Example 1:

    Input: a = "11", b = "1"
    Output: "100"
    

    Example 2:

    Input: a = "1010", b = "1011"
    Output: "10101"
    

    代码:

    class Solution:
        def addBinary(self, a: 'str', b: 'str') -> 'str':
            
            if len(a)>len(b):
                long=a
                short=b
            else:
                long=b
                short=a
            
            n=min(len(a),len(b))
            m=max(len(a),len(b))
            
            res=""
            sum_=0
            
            for i in range(n):
                sum_+=int(b[-1-i])+int(a[-1-i])
                current=sum_%2
                res=str(current)+res
                sum_=sum_//2        
                
            for i in range(n,m):
                sum_+=int(long[-1-i])
                current=sum_%2
                res=str(current)+res
                sum_=sum_//2
                
            if sum_!=0:
                res=str(sum_)+res
                
            return res
    

    讨论:

    1.虽然此代码很丑,但是效率最高!good!keep moving!

    相关文章

      网友评论

          本文标题:[Math/String]67. Add Binary

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