Skip to content

Commit dcdc956

Browse files
committed
2
1 parent 8f96177 commit dcdc956

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

MultiplyStrings/MultiplyStrings.cpp

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
class Solution {
2+
public:
3+
string multiply(string num1, string num2) {
4+
// Start typing your C/C++ solution below
5+
// DO NOT write int main() function
6+
7+
int len_num1 = num1.size();
8+
int len_num2 = num2.size();
9+
10+
vector<int> multiply_num(len_num1 + len_num2, 0);
11+
12+
for (int i = len_num1 - 1; i >= 0; i--) {
13+
for (int j = len_num2 - 1; j >= 0; j--) {
14+
int a = num1[i] - '0';
15+
int pa = len_num1 - i - 1;
16+
int b = num2[j] - '0';
17+
int pb = len_num2 - j - 1;
18+
multiply_num[pa + pb] += a * b;
19+
}
20+
}
21+
for (int i = 0; i < multiply_num.size(); i++) {
22+
if (multiply_num[i] > 0) {
23+
multiply_num[i+1] += multiply_num[i] / 10;
24+
multiply_num[i] = multiply_num[i] % 10;
25+
}
26+
}
27+
28+
while (multiply_num[multiply_num.size()-1] == 0)
29+
multiply_num.pop_back();
30+
31+
string num;
32+
for (auto iter = multiply_num.rbegin(); iter != multiply_num.rend(); iter++)
33+
num += (char)(*iter + '0');
34+
35+
if (num.empty())
36+
num = "0";
37+
38+
return num;
39+
}
40+
};

0 commit comments

Comments
 (0)