js 67. 二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
输入: a = “11”, b = “1”
输出: “100”
来源:力扣(LeetCode)
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
let num1 = a.split('').map(parseFloat).reverse()
let num2 = b.split('').map(parseFloat).reverse()
let nums1 = a.length >= b.length ? num1 : num2
let nums2 = a.length < b.length ? num1 : num2
let res = new Array(nums1.length + 1).fill(0)
nums1.map((item, index) => {
if (nums2[index]) {
res[index] = res[index] + item + nums2[index]
} else {
res[index] = res[index] + item
}
if (res[index] == 2) {
res[index] = 0
res[index + 1] = 1
}else if(res[index] == 3){
res[index] = 1
res[index + 1] = 1
}
})
if(res[res.length-1]==0) res = res.splice(0, res.length - 1)
return res.reverse().join("")
};
请用今天的努力,让明天没有遗憾。