MCPcopy Create free account
hub / github.com/StudyRust/leetcode_rust / common_chars

Function common_chars

1002-find-common-characters.rs:1–28  ·  view source on GitHub ↗
(words: Vec<String>)

Source from the content-addressed store, hash-verified

1pub fn common_chars(words: Vec<String>) -> Vec<String> {
2 let words_len = words.len();
3 use std::collections::HashMap;
4 let mut mmp: HashMap<String, Vec<i32>> = HashMap::new();
5 for c in 'a'..'z' {
6 mmp.insert(c.to_string(), vec!());
7 }
8 for word in words {
9 let mut tmp = HashMap::new();
10 let word_cs: Vec<String> = word.chars().map(|e|e.to_string()).collect();
11 for c in word_cs {
12 let count = tmp.entry(c).or_insert(0);
13 *count += 1;
14 }
15 for (k, v) in tmp {
16 mmp.entry(k).or_insert(Vec::new()).push(v);
17 }
18 }
19 mmp.retain(|_, v| v.len() == words_len);
20 let mut ret: Vec<String> = vec!();
21 for (k, v) in mmp {
22 let min = v.iter().min().unwrap();
23 for _ in 0..*min {
24 ret.push(k.clone());
25 }
26 }
27 ret
28}
29
30fn main() {
31 let words = vec!["bella","label","roller"]

Callers

nothing calls this directly

Calls 2

insertMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected