File tree 1 file changed +40
-0
lines changed
1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
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
+ };
You can’t perform that action at this time.
0 commit comments