解题思路:
把位数短的 按照位数长的补齐
然后转为数组 从低位开始进行计算
按二进制进行累加进位 add 表示进位的值 0不进位 1进位
最后考虑最高位相加有没有进位 进位就在得到的结果前面增一位1
var addBinary = function(a, b) {
let longerItem = (a.length > b.length ? a: b);
let shortItem = (a.length > b.length ? b: a);
const len = longerItem.length;
shortItem = shortItem.padStart(len,0);
let longerArr = longerItem.split('');
let shortArr = shortItem.split('');
let add = 0;
for(let i=len-1; i>=0; i--){
let sum = add+Number(longerArr[i])+Number(shortArr[i]);
longerArr[i] = sum %2;
add = sum>=2 ? 1: 0;
}
longerItem = longerArr.join('')
if(add === 1){
longerItem= '1'+longerItem;
}
return longerItem;
};