0
点赞
收藏
分享

微信扫一扫

67. 二进制求和

小云晓云 2022-04-21 阅读 54

目录


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("");
};

在这里插入图片描述


后记

在这里插入图片描述

举报

相关推荐

0 条评论