File tree Expand file tree Collapse file tree 3 files changed +97
-0
lines changed
solution/0000-0099/0043.Multiply Strings Expand file tree Collapse file tree 3 files changed +97
-0
lines changed Original file line number Diff line number Diff line change 5050
5151```
5252
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+
5387### ** ...**
5488
5589```
Original file line number Diff line number Diff line change 4242
4343```
4444
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+
4579### ** ...**
4680
4781```
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