Longest Word in Dictionary LeetCode solution in Rust

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0