目录
1、题目描述
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
示例 1:
示例 2:
提示:
- 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。
- 1 <= a.length,b.length <= 10^4
- 字符串如果不是 “0” ,就都不含前导零。
题目来源
2、解题1(2022.04.20)
/**
* @param {string} a
* @param {string} b
* @return {string}
*/
var addBinary = function(a, b) {
const maxLength = Math.max(a.length, b.length);
console.log(maxLength);
const arr = [];
let lastValue = 0;
let aChar = 0;
let bChar = 0;
for (let i = 0; i < maxLength; i++) {
if (a.length - i - 1 >= 0) {
aChar = a.slice(a.length - i - 1, a.length - i);
} else {
aChar = 0;
}
if (b.length - i - 1 >= 0) {
bChar = b.slice(b.length - i - 1, b.length - i);
} else {
bChar = 0;
}
const result = aChar - 0 + (bChar - 0) + lastValue;
if (result >= 2) {
lastValue = 1;
arr.unshift(result - 2);
} else {
lastValue = 0;
arr.unshift(result);
}
if (i === maxLength - 1 && lastValue !== 0) {
arr.unshift(lastValue);
}
}
return arr.join("");
};