用最长字符长度遍历 判断进位对应情况与对应值 累加出结果 最后一位判断进位情况补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
};
二进制数相加算法
本文介绍了一种实现二进制数相加的算法,通过遍历输入的两个二进制字符串,逐位判断进位情况并进行累加操作。最终得到的结果考虑了最后一次可能产生的进位。
1139

被折叠的 条评论
为什么被折叠?



