67. Add Binary

# 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:]
原文地址:https://www.cnblogs.com/stAr-1/p/8078945.html