43. Multiply Strings

Posted Zzz...y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了43. Multiply Strings相关的知识,希望对你有一定的参考价值。

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

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

字符串相乘。

解决:

1、n位和m位数字相乘,乘积result不超过m+n位。

2、其中,num1[i] * num2[j] 影响的是 result[i+j+1]

 1 class Solution {
 2 public:
 3     string multiply(string num1, string num2) {
 4         if (num1 == "0" || num2 == "0")
 5             return "0";
 6         int len1 = num1.size();
 7         int len2 = num2.size();
 8         vector<int> v(len1 + len2, 0);
 9         int carry = 0;
10         for (int i=len1-1; i>=0; --i) {
11             carry = 0;
12             for (int j=len2-1; j>=0; --j) {
13                 int n1 = num1[i] - 0;
14                 int n2 = num2[j] - 0;
15                 v[i+j+1] += n1 * n2 + carry;
16                 carry = v[i+j+1] / 10;
17                 v[i+j+1] = v[i+j+1] % 10;
18             }
19             if (carry)
20                 v[i] += carry;
21         }
22         string mul;
23         if (v[0] != 0)
24             mul += v[0] + 0;
25         for (int i=1; i<len1+len2; ++i)
26             mul += v[i] + 0;
27         return mul;
28     }
29 };

 

以上是关于43. Multiply Strings的主要内容,如果未能解决你的问题,请参考以下文章

43. Multiply Strings

#Leetcode# 43. Multiply Strings

Leetcode 43. Multiply Strings

43. Multiply Strings

43. Multiply Strings

LeetCode 43. Multiply Strings