0
点赞
收藏
分享

微信扫一扫

LeetCode面试系列 第3天:No.67 - 二进制数求和

早安地球 2022-03-17 阅读 20

大家都知道 LeetCode 中的第一道题是 Two Sum,比较简单。我们今天决定挑一个与之类似,但难度稍大于之的问题 ​二进制之和​来分析,其中涉及到的主要知识是 Python 中的 ​进制转换​,比如后面的解题方法中我们先将二进制转换为十进制,最后又将十进制转换回二进制。

LeetCode面试系列 第3天:No.67 - 二进制数求和_字符串Leetcode

今天要给大家分析的面试题是 LeetCode 上第 ​67​ 号问题,

LeetCode - 67. Add Binaryhttps://leetcode-cn.com/problems/add-binary/

题目描述

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

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

示例 1:

输入: a = "11", b = "1"
输出: "100"

示例 2:

输入: a = "1010", b = "1011"
输出: "10101"
  • 贡献者: LeetCode

  • 题目难度: ​Easy

  • 相关话题

  • 数学[1]

  • 字符串[2]

  • 相似题目

  • 两数相加[3]​ 难度: 中等

  • 字符串相乘[4]​ 难度: 中等

  • 加一[5]​ 难度: 简单

  • 数组形式的整数加法[6]​ 难度: 简单

解题思路:

先使用 ​​int(var, 2)​​​ 的方式将输入的二进制字符串转为 int,然后相加,得到和 sum 后,再使用 ​​format(sum, 'b')​​ 将结果转回二进制字符串,即为所需结果。

已 AC 代码(Python 3):

class Solution:
def addBinary(self, a: str, b: str) -> str:
num1 = int(a, 2)
num2 = int(b, 2)
sum0 = num1 + num2
return format(sum0, 'b')

ps:​ 这里和的变量名使用​​sum0​​​是因为 ​​sum​​是 Python 中内置的关键字。

运行情况:

执行用时: ​​44 ms​​​, 在所有 Python 3 提交中击败了​​96.46%​​的用户.

LeetCode面试系列 第3天:No.67 - 二进制数求和_字符串_02

                                leetcode67-result

如果需要在本地测试,完整代码如下:

class Solution:
def addBinary(self, a: str, b: str) -> str:
num1 = int(a, 2)
num2 = int(b, 2)
sum0 = num1 + num2
return format(sum0, 'b')


# 测试
sol = Solution()
print(sol.addBinary('11', '1101'))

参考资料

[1]

数学: ​https://leetcode.com/tag/math

[2]

字符串: ​https://leetcode.com/tag/string

[3]

两数相加: ​https://leetcode-cn.com/problems/add-two-numbers/

[4]

字符串相乘: ​https://leetcode-cn.com/problems/multiply-strings/

[5]

加一: ​https://leetcode-cn.com/problems/plus-one/

[6]

数组形式的整数加法: ​https://leetcode-cn.com/problems/add-to-array-form-of-integer/


系列文章

        LeetCode面试系列 第2天:No.136 - 只出现一次的数

Leetcode面试系列 第1天:Leetcode 89 - 格雷码



第11天:Python 字典

        第10天:Python 类与对象

第9天:Python Tupple

第8天:Python List

第7天:Python 数据结构-序列

第6天:Python 模块和包

第5天:Python 函数

第4天:Python 流程控制

第3天:Python 变量与数据类型

第2天:Python 基础语法

第1天:Python 环境搭建


PS:​公号内回复 :Python,即可进入Python 新手学习交流群,一起​100天计划!-END-

Python 技术
关于 Python 都在这里


LeetCode面试系列 第3天:No.67 - 二进制数求和_进制转换_03



举报

相关推荐

0 条评论