打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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 类与对象


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
二进制到十进制的转换,字符串处理
LeetCode 67.二进制求和(简单)
leetcode
LeetCode 8. 字符串转换整数 (atoi)
c语言计算字符串中子串出现的次数函数
程序员面试100题(算法)之把字符串转换成整数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服