Check If Word Is Valid After Substitutions LeetCode solution in Rust
1impl Solution {2pub fn is_valid(s: String) -> bool {3let mut stack: Vec<[u8; 3]> = vec![[0, 0, 0]; 1];45for byte in s.as_bytes() {6let idx = (*byte - b'a') as usize;78if stack.last().unwrap()[idx] == 1 {9stack.push([0, 0, 0]);10}1112let counts = stack.last_mut().unwrap();1314counts[idx] = 1;15if counts[2] > counts[1] || counts[2] > counts[0] || counts[1] > counts[0] {16return false;17} else if *counts == [1, 1, 1] {18stack.pop();19if stack.len() == 0 {20stack.push([0, 0, 0]);21}22}23}2425stack.len() == 1 && stack[0] == [0, 0, 0]26}27}