Multiply Strings

Problem Description

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string.

Note: You must not use any built-in BigInteger library or convert the inputs to integer directly.

 

Example 1:

Input: num1 = "2", num2 = "3"
Output: "6"

Example 2:

Input: num1 = "123", num2 = "456"
Output: "56088"

 

Constraints:

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';
};