File tree 3 files changed +64
-0
lines changed
solution/2100-2199/2147.Number of Ways to Divide a Long Corridor
3 files changed +64
-0
lines changed Original file line number Diff line number Diff line change @@ -218,7 +218,28 @@ func numberOfWays(corridor string) int {
218
218
### ** TypeScript**
219
219
220
220
``` ts
221
+ function numberOfWays(corridor : string ): number {
222
+ const M: number = 1e9 + 7 ;
223
+ const seatNumbers: number [] = [];
221
224
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
+ }
222
243
```
223
244
224
245
### ** ...**
Original file line number Diff line number Diff line change @@ -193,7 +193,28 @@ func numberOfWays(corridor string) int {
193
193
### ** TypeScript**
194
194
195
195
``` ts
196
+ function numberOfWays(corridor : string ): number {
197
+ const M: number = 1e9 + 7 ;
198
+ const seatNumbers: number [] = [];
196
199
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
+ }
197
218
```
198
219
199
220
### ** ...**
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments