# coding=utf-8 #这是自己想的方法 def addBinary(a, b): """ :type a: str :type b: str :rtype: str 将二进制字符串转为十进制,方法是按位分开乘以2的l-i-1幂 然后转为二进制字符串 """ num1 = 0 num2 = 0 l1 = len(a) l2 = len(b) for i in range(l1): # python中字符串本身就是一个数组,所以直接索引就行 num1 += int(a[i])*(2**(l1-i-1)) for i in range(l2): num2 += int(b[i]) * (2 ** (l2 - i - 1)) num = num1+num2 # bin()可以将十进制转为二进制,返回结果是字符串,字符串可以分片 return bin(num)[2:] # 牛人的答案 def addBinary2(a, b): """ :type a: str :type b: str :rtype: str 方法一样,不过调用了python内置的将二进制字符串转为十进制int的方法 """ # int(a,base = 2)是把其他类型的二进制a转为十进制int,base还可以是8,16 return bin(int(a,base=2) + int(b,base=2))[2:]