给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:
输入: a = "1010", b = "1011"
输出: "10101"
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
var res=[];
var len=Math.max(a.length,b.length)+1;
a=a.padStart(len,0).split("");
b=b.padStart(len,0).split("");
var count=0;
while(len+1){
console.log(a,b,count);
var r=parseInt(a.pop())+parseInt(b.pop())+count;
if(r==0){
res.unshift(0);
count=0;
}else if(r==1){
res.unshift(1);
count=0;
}else if(r==2){
res.unshift(0);
count=1;
}else if(r==3){
res.unshift(1);
count=1;
}
console.log(res);
len--;
console.log("-------")
};
console.log(res);
if(parseInt(res.join(""))==0){
return "0";
}
return res.join("").replace(/\b(0+)/gi,"");
};
又是写垃圾代码的一天