Number of Ways to Divide a Long Corridor LeetCode solution in Rust

1
impl Solution {
2
pub fn number_of_ways(corridor: String) -> i32 {
3
const MOD: u64 = (1e9 + 7.) as _;
4

5
let mut count = 1;
6
let mut seats = 0;
7
let mut j = None;
8

9
for (i, c) in corridor.char_indices() {
10
if c == 'S' {
11
seats += 1;
12
if seats == 2 {
13
j = Some(i);
14
seats = 0;
15
} else if seats == 1 && j.is_some() {
16
count = (count * (i - j.unwrap()) as u64) % MOD;
17
}
18
}
19
}
20

21
if seats == 1 || j.is_none() {
22
return 0;
23
}
24

25
count as _
26
}
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0