python学习日志3

leetcode之Add Binary的解法

class Solution(object):
    def addBinary(self,a,b):
        l=[]
        carry=0
        
        if len(a)>=len(b):
            i=len(a)-1
            for m in b[::-1]:
                t=int(a[i])+int(m)+carry
                carry=self.add(t,l)
                i=i-1
        else:
            i=len(b)-1
            for n in a[::-1]:
                t=int(n)+int(b[i])+carry
                carry=self.add(t,l)
                i=i-1
        if len(a)>len(b):
            for n in a[-len(b)-1::-1]:
                t=int(n)+carry
                carry=self.add(t,l)
        if len(a)<len(b):
            for m in b[-len(a)-1::-1]:
                t=int(m)+carry
                carry=self.add(t,l)
        if carry==1:
            l.insert(len(l),'1')
        l.reverse()
        return ''.join(l)
    def add(self,t,l):
        if t==3:
            l.append('1')
            carry=1
        elif t==2:
            l.append('0')
            carry=1
        elif t==1:
            l.append('1')
            carry=0
        else:
            l.append('0')
            carry=0
        return carry
        


学习总结 

1.unicode字符不能和str的相加减,不同于C的ascii字符,并且str类型也不支持相加减,可以用强制类型转换int()

2.java类里面非静态的方法可以在类内部调用,但是python里面不能直接调用,会报错,找不到该方法,必须使用self.方法名

3.不可以这样写str.join(l.reverse()),要分开l.reverse()和str.join(l)

4.list.insert(-1,obj)的结果是obj在倒数第二位,因为list插入当前位置,在插入之后的(包括本身)都向后移动

更多leetcode解题源码,请查看我的github地址https://github.com/Jum1023/leetcode


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值