/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
const multiply = function (num1, num2) {
const len1 = num1.length;
const len2 = num2.length;
const arr1 = num1.split('').map(item => Number(item));
const arr2 = num2.split('').map(item => Number(item));
const ansArr = new Array(len1 + len2).fill(0); // 创建数组存储每位数,并填充0
for (let i = len1 - 1; i >= 0; i--) {
for (let j = len2 - 1; j >= 0; j--) {
const val = arr1[i] * arr2[j];
if (val >= 10) {
addToAnsArr(val % 10, len1 + len2 - i - j - 2);
addToAnsArr(Math.floor(val / 10), len1 + len2 - i - j - 1);
} else {
addToAnsArr(val, len1 + len2 - i - j - 2);
}
}
}
function addToAnsArr(val, index) {
const sum = ansArr[index] + val;
if (sum >= 10) {
ansArr[index] = sum - 10;
addToAnsArr(1, index + 1);
} else {
ansArr[index] = sum;
}
}
// 去除多余位0
const ll = ansArr.length;
for (let i = ll - 1; i >= 0; i--) {
if (ansArr[i] !== 0) {
return ansArr.slice(0, i + 1).reverse().join('');
}
}
return '0';
};