# 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:]