67. 二进制求和

思路:

跟十进制加法是一样的,只不过进位不是10而已。 其实代码可以精简一点。 但不想花精力干这个事儿了。

 

复制代码
 1 /**
 2      * @param {string} a
 3      * @param {string} b
 4      * @return {string}
 5      */
 6     var addBinary = function(a, b) {
 7         let indexA = a.length-1, indexB = b.length-1;
 8         let res = '';
 9         // 进位
10         let remains = 0;
11         while(indexA >= 0 && indexB >= 0){
12             let charA = Number(a.charAt(indexA)), charB = Number(b.charAt(indexB));
13             let tmpRemains = remains;
14             remains = (charA + charB + tmpRemains) >> 1;
15             res = ((charA + charB + tmpRemains) % 2) + res;
16             indexA--;
17             indexB--;
18         }
19         while(indexA >= 0){
20             let charA = Number(a.charAt(indexA));
21             let tmpRemains = remains;
22             remains = (charA + tmpRemains) >> 1;
23             res = ((charA + tmpRemains) % 2) + res;
24             indexA--;
25         }
26         while(indexB >= 0){
27             let charB = Number(b.charAt(indexB));
28             let tmpRemains = remains;
29             remains = (charB + tmpRemains) >> 1;
30             res = ((charB + tmpRemains) % 2) + res;
31             indexB--;
32         }
33         if(remains > 0){
34             res = '1' + res;
35         }
36         return res;
37     };
复制代码

 

posted @   BJFU-VTH  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示