我的js算法爬坑之旅- 二进制求和

218 阅读1分钟

第八十八天:力扣67题,二进制求和

地址:leetcode-cn.com/problems/ad…

思路:将两个字符串较短的用 0 补齐,使得两个字符串长度一致,然后从末尾进行遍历计算,得到最终结果。

var addBinary = function(a, b) {
    let ans = "";
    let ca = 0;
    for(let i = a.length - 1, j = b.length - 1;i >= 0 || j >= 0; i--, j--) {
        let sum = ca;
        sum += i >= 0 ? parseInt(a[i]) : 0;
        sum += j >= 0 ? parseInt(b[j]) : 0;
        ans += sum % 2;
        ca = Math.floor(sum / 2);
    }
    ans += ca == 1 ? ca : "";
    return ans.split('').reverse().join('');
}; 

执行用时:84 ms, 在所有 JavaScript 提交中击败了91.58%的用户

内存消耗:39.8 MB, 在所有 JavaScript 提交中击败了58.01%的用户