二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例1: 输入: a = “11”, b = “1” 输出: “100” 示例2: 输入: a = “1010”, b = “1011” 输出: “10101” //满二进一 var addBinary = function(a, b) { let sum = 0 //保留上一次位数相加后是否进一 let result = "" for(let i = a.length -1, j = b.length-1; i >= 0 || j >= 0; i--, j--){ let count = sum //取sum的值,与本次遍历的两数相加 count += a[i] > 0 ? parseInt(a[i]) : 0 count += b[j] > 0 ? parseInt(b[j]) : 0 //count的值只可能为 0、1、2、3 result += count % 2 sum = Math.floor(count / 2) // count >= 2 时会进一 } result += sum == 1 ? sum : "" //最后要检查sum是否为1,为1则表示还需要进位 return result.split("").reverse().join("") //反转,因为是从字符串末端开始遍历 };