Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f56cac4

Browse files
feat: add typescript solution to lc problem: No.0043.Multiply Strings (doocs#585)
1 parent 9c32c3c commit f56cac4

File tree

3 files changed

+97
-0
lines changed

3 files changed

+97
-0
lines changed

‎solution/0000-0099/0043.Multiply Strings/README.md‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,40 @@
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
```

‎solution/0000-0099/0043.Multiply Strings/README_EN.md‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,40 @@
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
```
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /