dmndxld

码不停题

二进制求和

题目:

给定两个二进制字符串,返回他们的和(用二进制表示)。

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

示例 1:

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

思路:我反正佛了我自己的思路。。先把字符串转列表,然后加0对其,因为我不会从高位加所以就颠倒相加得结果,结果是列表,再颠倒转字符串就行了。。。。我去。。这个不熟python可真难受

 

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        a1=list(a)
        b1=list(b)
        n1=len(a1)
        n2=len(b1)

        r=[]
        jin=0
        c=0
        if(n1>n2):
            for i in range(n1-n2):
                b1.insert(i,'0')
            a1.reverse()
            b1.reverse()
            for j in range(n1):
                c=int(a1[j])+int(b1[j])+jin
                if(c<=1):
                    jin=0
                if(c>2):
                    c=1
                    jin=1
                if(c==2):
                    c=0
                    jin=1
                
                r.append(str(c))
            if(jin==1):
                r.append('1')
        if(n1<n2):
            for i in range(n2-n1):
                a1.insert(i,'0')
            a1.reverse()
            b1.reverse()
            for j in range(n2):
                c=int(a1[j])+int(b1[j])+jin
                if(c<=1):
                    jin=0
                if(c>2):
                    c=1
                    jin=1
                if (c == 2):
                    c = 0
                    jin = 1
                
                r.append(str(c))
            if(jin==1):
                r.append('1')
        if(n1==n2):
            a1.reverse()
            b1.reverse()
            for j in range(n1):
                c=int(a1[j])+int(b1[j])+jin
                if(c<=1):
                    jin=0
                if(c>2):
                    c=1
                    jin=1
                if (c == 2):
                    c = 0
                    jin = 1
                
                r.append(str(c))
            if(jin==1):
                r.append('1')
        r.reverse()
        ans=''
        for i in range(len(r)):
            ans+=str(r[i])
        return ans

 

调试才知道自己有多菜。。。

 

执行用时 : 64 ms, 在Add Binary的Python3提交中击败了55.48% 的用户
内存消耗 : 13 MB, 在Add Binary的Python3提交中击败了97.07% 的用户
 
不过好处就是我这样写好像可以省内存。。
先睡了。。。

 

posted on 2019-05-06 01:14  imyourterminal  阅读(319)  评论(0编辑  收藏  举报

导航