From 67cdcc2e12118becb823e20a40cc2687f2b8425a Mon Sep 17 00:00:00 2001 From: Adam Carpenter <53hornet@gmail.com> Date: Wed, 27 Mar 2019 15:32:37 -0400 Subject: Started Rust in Action MEAP. --- meap/meap-code/ch1/ch1-hashmap-hashset.rs | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 meap/meap-code/ch1/ch1-hashmap-hashset.rs (limited to 'meap/meap-code/ch1/ch1-hashmap-hashset.rs') diff --git a/meap/meap-code/ch1/ch1-hashmap-hashset.rs b/meap/meap-code/ch1/ch1-hashmap-hashset.rs new file mode 100644 index 0000000..1fa9229 --- /dev/null +++ b/meap/meap-code/ch1/ch1-hashmap-hashset.rs @@ -0,0 +1,33 @@ +use std::collections::{HashMap, HashSet}; + +fn main() { + + let input_text = "does this work + i dont know + how rust works"; + + let mut character_counts = HashMap::new(); + + let mut n_lines = 0u32; + + for l in input_text.lines() { + n_lines = n_lines + 1; + + let mut chars_for_line = HashSet::new(); + + for c in l.chars() { + if chars_for_line.contains(&c) { + continue + } + let c_count = character_counts.entry(c).or_insert(0u32); + *c_count += 1; + chars_for_line.insert(c); + } + } + + for (c, c_count) in &character_counts { + if *c_count == n_lines { + println!("{}", c); + } + } +} -- cgit v1.2.3