给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 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 currPlus = 0,
str = '';
var alen = a.toString().length - 1,
blen = b.toString().length - 1;
var len = Math.max(alen, blen)
while(len > -1){
var temp = parseInt(alen > -1 ? a[alen] : 0)
+ parseInt(blen > -1 ? b[blen] : 0)
+ currPlus;
if(temp == 2){
str = '0' + str;
currPlus = 1;
}else if(temp < 2){
str = temp.toString() + str;
currPlus = 0;
}else{
str = (temp-2).toString() + str;
currPlus = 1;
}
alen--;
blen--;
len--;
}
if(currPlus != 0 ){
str = currPlus.toString() + str;
}
return str;
};