【LeetCode 67】二进制求和

网友投稿 692 2022-10-31

【LeetCode 67】二进制求和

【LeetCode 67】二进制求和

题目描述

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

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

示例 1:

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

示例 2:

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

提示:

每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 104字符串如果不是 “0” ,就都不含前导零。

实现思路

这个使用最直接的方法来解决,直接对应位进行相加操作,需要对进位数进行判断,然后给出不同的操作。最后需要注意,如果还有进位,就在结果的前面加个1。

代码实现

/** * @param {string} a * @param {string} b * @return {string} */var addBinary = function(a, b) { // 首先将两个树的位数补齐 while(a.length > b.length) b = "0" + b while(a.length < b.length) a = "0" + a let res = new Array(a.length) let sum = 0 let temp = 0 // 进位 for(let i = a.length - 1; i >= 0; i --){ sum = Number(a[i]) + Number(b[i]) + temp if(sum >= 2){ res[i] = sum - 2 temp = 1 }else{ res[i] = sum temp = 0 } } if(temp) res.unshift(1) return res.join("")};

提交结果

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LSNewsDetailWebviewContainer是一个可快速集成的新闻详情界面框架
下一篇:【LeetCode 36】有效的数独
相关文章

 发表评论

暂时没有评论,来抢沙发吧~