LeetCode-67.二进制求和(Add Binary)

原创
10/18 17:20
阅读数 12

67. 二进制求和

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

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

示例 1:

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

示例 2:

输入: a = "1010", b = "1011"输出: "10101"

提示:

每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/add-binary

Link:https://leetcode.com/problems/add-binary/

模拟加

class Solution:    def addBinary(self, a: str, b: str) -> str:
carry = 0 i = len(a) - 1 j = len(b) - 1 res = ''
while i >= 0 or j >=0 or carry > 0:
left = int(a[i]) if i >=0 else 0 right = int(b[j]) if j >=0 else 0 val = left + right + carry
res = str(val % 2) + res # str(val & 1) + res carry = val // 2 # val >> 1
i -= 1 j -= 1
return res

题外话

### 为什么我要写这个公众号

我是2018年开始刷题的,当时LeetCode还没有过千,从同学那里得知FANNG面试比重非常大。

那个时候300来道题,在知乎上看到一篇问答《刷 LeetCode 吃力正常吗?》随手回答了一下,没想到点赞过千了。

学算法是非常反人类的事情,不只吃力这么简单,简直会怀疑自己根本不适合做计算机行业

300百虽然不多,但是回头看,还是挺有成就感的,甚至有些感动

这条路很艰难,每学会新的东西,都觉得这些只是基础

这里的分享,只是个人的标准,希望帮助到你

原稿博客: http://geemaple.github.io/

--End--


本文分享自微信公众号 - 极客见闻(geekbro)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部