File tree 3 files changed +97
-0
lines changed
solution/0000-0099/0043.Multiply Strings
3 files changed +97
-0
lines changed Original file line number Diff line number Diff line change 50
50
51
51
```
52
52
53
+ ### ** TypeScript**
54
+
55
+ ``` ts
56
+ function multiply(num1 : string , num2 : string ): string {
57
+ if ([num1 , num2 ].includes (' 0' )) return ' 0' ;
58
+ const n1 = num1 .length , n2 = num2 .length ;
59
+ let ans = ' ' ;
60
+ for (let i = 0 ; i < n1 ; i ++ ) {
61
+ let cur1 = parseInt (num1 .charAt (n1 - i - 1 ), 10 );
62
+ let sum = ' ' ;
63
+ for (let j = 0 ; j < n2 ; j ++ ) {
64
+ let cur2 = parseInt (num2 .charAt (n2 - j - 1 ), 10 );
65
+ sum = addString (sum , cur1 * cur2 + (' 0' .repeat (j )));
66
+ }
67
+ ans = addString (ans , sum + (' 0' .repeat (i )));
68
+ }
69
+ return ans ;
70
+ };
71
+
72
+ function addString(s1 : string , s2 : string ): string {
73
+ const n1 = s1 .length , n2 = s2 .length ;
74
+ let ans = [];
75
+ let sum = 0 ;
76
+ for (let i = 0 ; i < n1 || i < n2 || sum > 0 ; i ++ ) {
77
+ let num1 = s1 .charAt (i ) ? parseInt (s1 .charAt (i ), 10 ) : 0 ;
78
+ let num2 = s2 .charAt (i ) ? parseInt (s2 .charAt (i ), 10 ) : 0 ;
79
+ sum += (num1 + num2 );
80
+ ans .unshift (sum % 10 );
81
+ sum = Math .floor (sum / 10 );
82
+ }
83
+ return ans .join (' ' );
84
+ }
85
+ ```
86
+
53
87
### ** ...**
54
88
55
89
```
Original file line number Diff line number Diff line change 42
42
43
43
```
44
44
45
+ ### ** TypeScript**
46
+
47
+ ``` ts
48
+ function multiply(num1 : string , num2 : string ): string {
49
+ if ([num1 , num2 ].includes (' 0' )) return ' 0' ;
50
+ const n1 = num1 .length , n2 = num2 .length ;
51
+ let ans = ' ' ;
52
+ for (let i = 0 ; i < n1 ; i ++ ) {
53
+ let cur1 = parseInt (num1 .charAt (n1 - i - 1 ), 10 );
54
+ let sum = ' ' ;
55
+ for (let j = 0 ; j < n2 ; j ++ ) {
56
+ let cur2 = parseInt (num2 .charAt (n2 - j - 1 ), 10 );
57
+ sum = addString (sum , cur1 * cur2 + (' 0' .repeat (j )));
58
+ }
59
+ ans = addString (ans , sum + (' 0' .repeat (i )));
60
+ }
61
+ return ans ;
62
+ };
63
+
64
+ function addString(s1 : string , s2 : string ): string {
65
+ const n1 = s1 .length , n2 = s2 .length ;
66
+ let ans = [];
67
+ let sum = 0 ;
68
+ for (let i = 0 ; i < n1 || i < n2 || sum > 0 ; i ++ ) {
69
+ let num1 = s1 .charAt (i ) ? parseInt (s1 .charAt (i ), 10 ) : 0 ;
70
+ let num2 = s2 .charAt (i ) ? parseInt (s2 .charAt (i ), 10 ) : 0 ;
71
+ sum += (num1 + num2 );
72
+ ans .unshift (sum % 10 );
73
+ sum = Math .floor (sum / 10 );
74
+ }
75
+ return ans .join (' ' );
76
+ }
77
+ ```
78
+
45
79
### ** ...**
46
80
47
81
```
Original file line number Diff line number Diff line change
1
+ function multiply ( num1 : string , num2 : string ) : string {
2
+ if ( [ num1 , num2 ] . includes ( '0' ) ) return '0' ;
3
+ const n1 = num1 . length , n2 = num2 . length ;
4
+ let ans = '' ;
5
+ for ( let i = 0 ; i < n1 ; i ++ ) {
6
+ let cur1 = parseInt ( num1 . charAt ( n1 - i - 1 ) , 10 ) ;
7
+ let sum = '' ;
8
+ for ( let j = 0 ; j < n2 ; j ++ ) {
9
+ let cur2 = parseInt ( num2 . charAt ( n2 - j - 1 ) , 10 ) ;
10
+ sum = addString ( sum , cur1 * cur2 + ( '0' . repeat ( j ) ) ) ;
11
+ }
12
+ ans = addString ( ans , sum + ( '0' . repeat ( i ) ) ) ;
13
+ }
14
+ return ans ;
15
+ } ;
16
+
17
+ function addString ( s1 : string , s2 : string ) : string {
18
+ const n1 = s1 . length , n2 = s2 . length ;
19
+ let ans = [ ] ;
20
+ let sum = 0 ;
21
+ for ( let i = 0 ; i < n1 || i < n2 || sum > 0 ; i ++ ) {
22
+ let num1 = s1 . charAt ( i ) ? parseInt ( s1 . charAt ( i ) , 10 ) : 0 ;
23
+ let num2 = s2 . charAt ( i ) ? parseInt ( s2 . charAt ( i ) , 10 ) : 0 ;
24
+ sum += ( num1 + num2 ) ;
25
+ ans . unshift ( sum % 10 ) ;
26
+ sum = Math . floor ( sum / 10 ) ;
27
+ }
28
+ return ans . join ( '' ) ;
29
+ }
You can’t perform that action at this time.
0 commit comments