Number of Ways to Divide a Long Corridor LeetCode solution in Rust
1impl Solution {2pub fn number_of_ways(corridor: String) -> i32 {3const MOD: u64 = (1e9 + 7.) as _;45let mut count = 1;6let mut seats = 0;7let mut j = None;89for (i, c) in corridor.char_indices() {10if c == 'S' {11seats += 1;12if seats == 2 {13j = Some(i);14seats = 0;15} else if seats == 1 && j.is_some() {16count = (count * (i - j.unwrap()) as u64) % MOD;17}18}19}2021if seats == 1 || j.is_none() {22return 0;23}2425count as _26}27}