Voyz's Studio.

LeetCode算法笔记--字符串相乘

字数统计: 248阅读时长: 1 min
2020/10/09 Share

LeetCode算法笔记–Day23

43. 字符串相乘

题目:

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

num1 和 num2 的长度小于110。
num1 和 num2 只包含数字 0-9。
num1 和 num2 均不以零开头,除非是数字 0 本身。
不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。

示例1:
输入: num1 = “2”, num2 = “3”
输出:”6”

我的解答:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var multiply = function(num1, num2) {
if (num1 == '0' || num2 == '0') return '0';
let l1 = num1.length,
l2 = num2.length;
let res = new Array(l1 + l2 - 1).fill(0);
for (let i = 0; i < l2; i++) {
for (let j = 0; j < l1; j++) {
res[i + j] += +num2[i] * +num1[j];
}
}
let len = res.length;
let str = '',
num = 0;
while (len--) {
num += res[len];
str = (num % 10) + str;
num = (num / 10) | 0;
}
return num > 0 ? num + str : str;
};
CATALOG
  1. 1. LeetCode算法笔记–Day23
  2. 2. 43. 字符串相乘
    1. 2.0.0.0.1. 题目:
    2. 2.0.0.0.2. 我的解答: