用最长字符长度遍历 判断进位对应情况与对应值 累加出结果 最后一位判断进位情况补1
var addBinary = function(a, b) {
let maxLength=Math.max(a.length,b.length);
let ans='' //返回结果
let flag=false //判断是否进位
for(let i=1;i<=maxLength;i++){
let curr=0
let currA=a[a.length-i]||'0'
let currB=b[b.length-i]||'0'
if(currA=='1'&&currB=='1'){ //A和B都是1的情况下
if(flag){ //上一次判断有没有进位
curr='1'
}
flag=true
}else if(currA!=currB){ //A和B只有一个是1的情况下
if(flag){
flag=true
}else{
curr='1'
}
}else{ //A和B都不是1的情况下
if(flag){
curr='1'
}
flag=false
}
ans=curr+ans
}
ans = flag ? '1' + ans : ans
return ans
};