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

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

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


image.png


今天要给大家分析的面试题是 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%的用户.


image.png


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


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/

目录
相关文章
|
4月前
|
开发者 索引 Python
这些年背过的面试题——LeetCode
本文是技术人面试系列LeetCode篇,一文带你详细了解,欢迎收藏!
|
6月前
|
存储 算法 数据挖掘
深入解析力扣168题:Excel表列名称(进制转换法详解及模拟面试问答)
深入解析力扣168题:Excel表列名称(进制转换法详解及模拟面试问答)
|
6月前
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
6月前
|
存储 算法 数据可视化
【模拟面试问答】深入解析力扣163题:缺失的区间(线性扫描与双指针法详解)
【模拟面试问答】深入解析力扣163题:缺失的区间(线性扫描与双指针法详解)
|
6月前
|
存储 算法 数据可视化
【模拟面试问答】深入解析力扣164题:最大间距(桶排序与排序方法详解)
【模拟面试问答】深入解析力扣164题:最大间距(桶排序与排序方法详解)
|
5月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
5月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
5月前
|
存储 算法
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
|
6月前
|
SQL 算法 大数据
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
|
6月前
|
算法 数据挖掘 大数据
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)
深入解析力扣172题:阶乘后的零(计算因子5的方法详解及模拟面试问答)