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

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

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%的用户.

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 - 只出现一次的数

第10天:Python类与对象

(0)

相关推荐

  • ​LeetCode刷题实战186:翻转字符串里的单词 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战28:实现 strStr()

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 初学C语言-循环

    for(;;;) 一切能用while循环的语句都可以使用for循环实现 while() 循环   不满足括号内容时结束循环; 先简单写一个while循环 吃小笼包子,吃到第三个包子吃出一条虫 #inc ...

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

    最近,打算花点时间写个 Python 解决 Leetcode 题的系列文章~ 大家是否还记得电影黑客帝国中的数字雨林的场景?事实上,计算机底层数据的存储和运算都是二进制的,因而面试题环节中面试官也经常 ...

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

    LeetCode面试题题系列的上一篇文章 Leetcode面试系列 第1天:Leetcode 89 - 格雷码 中,我们介绍了 二进制相关 的一个典型题. 今天呢,咱们来聊聊哈希表(字典),这是另一种 ...

  • LeetCode面试系列 第4天:No.202 - 快乐数

    或许你不知道的是,Leetcode 中是有很多 数学题 的,本文要解析的题 快乐数 就是其中到一个典型问题,本题将基于数据结构 set 来求解. 今天要给大家分析的面试题是 LeetCode 上第 2 ...

  • LeetCode面试系列 第5天:No.204 - 统计质数

    在上篇算法题的文章中,我们介绍了 LeetCode 中的一道数学题 - 快乐数 .今天,我们来聊聊质数(英文是Prime,也称为素数)相关的面试题.以前很多编程书上会有个经典问题,即判断一个数是否是质 ...

  • LeetCode面试系列 第6天:No.9 - 回文数

    上一篇面试题中,我们使用了 埃拉托斯特尼筛法 去统计给定范围内质数的个数(LeetCode No.204),还是有点烧脑的.今天我们来分析一道相对轻松的字符串面试题吧,恰好大家从Python 100天 ...

  • LeetCode面试系列 第7天:No.13 - 罗马数字转整数

    上一篇 LeetCode 面试题中,我们分析了一道轻松的字符串面试题 - 回文数.今天我们来分析一道将数学和字符串结合起来的的面试题. Leetcode 今天要给大家分析的面试题是 LeetCode ...

  • LeetCode面试系列 第8天:No.58 - 最后一个单词的长度

    上一篇 LeetCode 面试题中,我们分析了一道将数学和字符串结合起来的的面试题,今天我们再来分析了一道轻松的字符串面试题吧~ Leetcode 今天要给大家分析的面试题是 LeetCode 上第 ...

  • LeetCode面试系列 第9天:No.345 - 反转字符串中的元音字母

    上一篇 LeetCode 面试题中,我们分析了一道相对轻松的字符串面试题 - 最后一个单词的长度.今天,我们接着来看另一道字符串的算法题吧. Leet code 今天要给大家分析的面试题是 LeetC ...

  • LeetCode面试系列 第10天:No.976 - 三角形的最大周长

    上一篇 LeetCode 面试题中,我们分析了一道字符串的算法题 - 反转字符串中的元音字母,今天我们来分析一道简单的几何题吧. Leetcode 今天要给大家分析的面试题是 LeetCode 上第 ...