一、题目地址
https://leetcode-cn.com/problems/JFETK5/
二、具体代码
1、方法一:转十进制相加,再转2进制字符串
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
return (parseInt(a, 2) + parseInt(b, 2)).toString(2);
};
2、方法二:按位相加
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
// 方法二:按位相加
var addBinary = function(a, b) {
let maxLen = Math.max(a.length, b.length);
a = a.padStart(maxLen, '0');
b = b.padStart(maxLen, '0');
let cnt = 0;//进位
let res = '';//结果字符串
for(let i=maxLen-1; i>=0; i--) {
let temp = parseInt(a[i]) + parseInt(b[i]) + cnt;
let currentNum = temp % 2;
cnt = Math.floor(temp / 2);
res = currentNum + res;
}
if(cnt > 0) {
res = cnt + res;
}
return res;
};