JS--字符串相乘---力扣

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

示例 1:

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

输入: num1 = “123”, num2 = “456”
输出: “56088”
说明:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/multiply-strings

/**
 * @param {string} num1
 * @param {string} num2
 * @return {string}
 */
var multiply = function(num1, num2) {
     
    let arr1 = num1.split('').reverse();
    let arr2 = num2.split('').reverse();
    let arr = [];
    if(num1.length === 0 || num2.length === 0){
     
           return "";
      }
    for (let i = 0; i < (num1.length + num2.length); i++){
     
        arr[i] = 0;
    }
    for (let i = 0; i < arr1.length; i++) {
     
        for (let j = 0; j < arr2.length; j++){
     
            let tem1 = Number(arr2[j]) * Number(arr1[i]) + arr[i+j];
            arr[i+j] = tem1%10;
            arr[i+j+1] = parseInt(tem1/10) + arr[i+j+1];
        }
    }
    for (let i = (num1.length + num2.length-1); i >= 0; i--){
     
        if (arr[i] !== 0) {
     
            return arr.slice(0,i+1).reverse().join('')
        }
    }
    return '0';
};

你可能感兴趣的:(leetcode)