Skip to content

Commit f5d3f05

Browse files
authoredNov 28, 2023
feat: add ts solution to lc problem: No.2147 (doocs#2028)
1 parent 9258236 commit f5d3f05

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed
 

‎solution/2100-2199/2147.Number of Ways to Divide a Long Corridor/README.md

+21
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,28 @@ func numberOfWays(corridor string) int {
218218
### **TypeScript**
219219

220220
```ts
221+
function numberOfWays(corridor: string): number {
222+
const M: number = 1e9 + 7;
223+
const seatNumbers: number[] = [];
221224

225+
for (let i = 0; i < corridor.length; i++) {
226+
if (corridor.charAt(i) === 'S') {
227+
seatNumbers.push(i);
228+
}
229+
}
230+
231+
if (seatNumbers.length % 2 !== 0 || seatNumbers.length === 0) {
232+
return 0;
233+
}
234+
235+
let result: number = 1;
236+
237+
for (let i = 2; i < seatNumbers.length; i += 2) {
238+
result = (result * (seatNumbers[i] - seatNumbers[i - 1])) % M;
239+
}
240+
241+
return result;
242+
}
222243
```
223244

224245
### **...**

‎solution/2100-2199/2147.Number of Ways to Divide a Long Corridor/README_EN.md

+21
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,28 @@ func numberOfWays(corridor string) int {
193193
### **TypeScript**
194194

195195
```ts
196+
function numberOfWays(corridor: string): number {
197+
const M: number = 1e9 + 7;
198+
const seatNumbers: number[] = [];
196199

200+
for (let i = 0; i < corridor.length; i++) {
201+
if (corridor.charAt(i) === 'S') {
202+
seatNumbers.push(i);
203+
}
204+
}
205+
206+
if (seatNumbers.length % 2 !== 0 || seatNumbers.length === 0) {
207+
return 0;
208+
}
209+
210+
let result: number = 1;
211+
212+
for (let i = 2; i < seatNumbers.length; i += 2) {
213+
result = (result * (seatNumbers[i] - seatNumbers[i - 1])) % M;
214+
}
215+
216+
return result;
217+
}
197218
```
198219

199220
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
function numberOfWays(corridor: string): number {
2+
const M: number = 1e9 + 7;
3+
const seatNumbers: number[] = [];
4+
5+
for (let i = 0; i < corridor.length; i++) {
6+
if (corridor.charAt(i) === 'S') {
7+
seatNumbers.push(i);
8+
}
9+
}
10+
11+
if (seatNumbers.length % 2 !== 0 || seatNumbers.length === 0) {
12+
return 0;
13+
}
14+
15+
let result: number = 1;
16+
17+
for (let i = 2; i < seatNumbers.length; i += 2) {
18+
result = (result * (seatNumbers[i] - seatNumbers[i - 1])) % M;
19+
}
20+
21+
return result;
22+
}

0 commit comments

Comments
 (0)
Please sign in to comment.