Skip to content

Commit 03f6ab0

Browse files
authored
Update multiply-strings.cpp
1 parent c8c227a commit 03f6ab0

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

C++/multiply-strings.cpp

+22-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22
// Space: O(m + n)
33

44
class Solution {
5+
public:
6+
string multiply(string num1, string num2) {
7+
string result(num1.size() + num2.size(), '0');
8+
for (int i = num1.size() - 1; i >= 0; --i) {
9+
for (int j = num2.size() - 1; j >= 0; --j) {
10+
int sum = (num1[i] - '0') * (num2[j] - '0') + (result[i + j + 1] - '0');
11+
result[i + j + 1] = sum % 10 + '0';
12+
result[i + j] += sum / 10;
13+
}
14+
}
15+
int pos = result.find_first_not_of('0');
16+
if (pos != string::npos) {
17+
return result.substr(pos);
18+
}
19+
return "0";
20+
}
21+
};
22+
23+
// Time: O(m * n)
24+
// Space: O(m + n)
25+
class Solution2 {
526
public:
627
string multiply(string num1, string num2) {
728
const auto char_to_int = [](const char c) { return c - '0'; };
@@ -32,7 +53,7 @@ class Solution {
3253
// Time: O(m * n)
3354
// Space: O(m + n)
3455
// Define a new BigInt class solution.
35-
class Solution2 {
56+
class Solution3 {
3657
public:
3758
string multiply(string num1, string num2) {
3859
return BigInt(num1) * BigInt(num2);

0 commit comments

Comments
 (0)