Multiply Strings
Description
Given two non-negative integers num1
and num2
represented as strings, return the product of num1
and num2
, also represented as a string.
Example 1:
Input: num1 = "2", num2 = "3" Output: "6"
Example 2:
Input: num1 = "123", num2 = "456" Output: "56088"
Note:
- The length of both
num1
andnum2
is < 110. - Both
num1
andnum2
contain only digits0-9
. - Both
num1
andnum2
do not contain any leading zero, except the number 0 itself. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
Solution(javascript)
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var multiply = function(num1, num2) {
let a = [];
let mul, l, r, sum;
for(let i = num1.length-1; i >= 0; i--){
for(let j = num2.length-1; j >= 0; j--){
mul = Number(num1.charAt(i)) * Number(num2.charAt(j));
sum = a[i+j+1] ? a[i+j+1] + mul : mul;
l = Math.floor(sum/10);
r = sum%10;
a[i+j+1] = r;
if(a[i+j]){
a[i+j] = a[i+j] + l;
} else {
a[i+j] = l;
}
}
}
let s = 0;
while(s < a.length && !a[s]){
s++;
}
return a.slice(s).join('') || '0';
};