这道题目有点简单,完全是占了python的便宜,因为都是使用函数完成的。
先看问题描述:
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1
or 0
.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
说下python的功能函数,将二进制转换为十进制,将十进制转换为二进制:
bin()函数可以将十进制转换为二进制
bin(255) = '0b11111111'
int()函数可以将字符串转换成二进制整数值
int
(
'1111'
,
2
) = 15
所以这道题迎刃而解,首先将两个二进制字符串转换成整数值,然后相加,最后将结果转换成二进制字符串
不过有个细节,转换后的字符串是以‘0b’开头的,所以用切片将其去掉,这样就可以实现题目要求的输出了。
下面是我的代码:
class Solution: def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ num1 = int(a,2) num2 = int(b,2) num = num1 + num2 re = bin(num) re = re[2:] return re if __name__ == '__main__': S = Solution() a = input('') b = input('') print(S.addBinary(a,b))
下面是运行结果:
谢谢观看!
2018.12.15 1:23 am