Python实现数据结构与算法——二进制求和

题目描述:

给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为非空字符串且只包含数字 1 和 0。

示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:
输入: a = "1010", b = "1011"
输出: "10101"

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-binary
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

转换成十进制相加,再转回二进制
代码如下:

class Solution:
    def addBinary(self, a: str, b: str) -> str:
        a = int(a,2)
        b = int(b,2)
        return bin(a+b)[2:]

测试结果:
Python实现数据结构与算法——二进制求和_第1张图片

总结:

很简单的题,但是有几个点需要注意。

  1. 字符串转十进制,不能直接int(a),因为这样直接将字符串转换,a=11,是十进制数,需要int(a,2)表示是二进制转换为10进制,这样a=3
  2. 相加后的结果,使用bin转二进制后,直接返回的就是字符串,但是前两位是标识符,‘0b’,所以根据题目要求,需要在返回的时候将’0b’去掉,从第三位开始返回,即使用字符串的切片操作:[2:]

你可能感兴趣的:(数据结构与算法,字符串,算法,python,leetcode,数据结构)