function addBinary(a: string, b: string): string { // 解法会溢出 // const la = parseInt(a, 2) // const lb = parseInt(b, 2) // const total = (la + lb).toString(2) // return total let l1: string = a.length >= b.length ? a : b let l2: string = a.length >= b.length ? b : a let l3: string = '' for (let i: number = 0; i < l1.length; i++) { if (l2[i] === void 0) { l2 = '0' + l2 } // l3 = '0' + l3 } let carry: number = 0 // 进位 for (let i = l1.length - 1; i >= 0; i--) { let cur = +l1[i] + +l2[i] + carry if (cur > 1) { cur -= 2 carry = 1 } else { carry = 0 } l3 = cur + l3 } if (carry) { l3 = '1' + l3 } return l3 }; // 示例 1: // 输入: a = "11", b = "1" // 输出: "100" // 示例 2: // 输入: a = "1010", b = "1011" // 输出: "10101"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)