@
yangg ```
/**
* @
param {string} num1
* @
param {string} num2
* @
return {string}
*/
var multiply = function(num1, num2) {
// max digits, may less than this
let digits = new Array(num1.length + num2.length).fill(0);
num1 = num1.split("").reverse();
num2 = num2.split("").reverse();
for (let i = 0; i < num1.length; i++) {
for (let j = 0; j < num2.length; j++) {
digits[i + j] += Number(num1[i]) * Number(num2[j]);
}
}
// carry
for (let i = 0; i < digits.length - 1; i++) {
digits[i + 1] += Math.floor(digits[i] / 10);
digits[i] = digits[i] % 10;
}
while (digits.length > 0 && digits[digits.length - 1] === 0) { digits.pop(); }
return digits.length === 0 ? "0" : digits.reverse().join("");
};
```