[Math/String]67. Add Binary

  • 分类: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!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容