Longest Word in Dictionary LeetCode solution in Rust
1impl Solution {2pub fn longest_word(words: Vec<String>) -> String {3let mut m = std::collections::HashMap::new();4for w in words {5m.entry(w.len()).or_insert(Vec::new()).push(w);6}7let mut cur = 2_usize;8let mut level = Vec::new();9if let Some(v) = m.get(&1) {10level = v.clone();11} else {12return String::new();13}14loop {15let mut new_level = Vec::new();16if let Some(v) = m.get(&cur) {17for word in v {18if level.iter().any(|w| word.starts_with(w)) {19new_level.push(word.clone());20}21}22}23if new_level.is_empty() {24return level.iter().min().unwrap().to_string();25}26level = new_level;27cur += 1;28}29}30}