Advertisement
Guest User

Untitled

a guest
Apr 29th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. use std::io;
  2. use std::collections::HashMap;
  3. use std::borrow::ToOwned;
  4.  
  5. fn get_number() -> u32 {
  6. let mut number = String::new();
  7. io::stdin().read_line(&mut number).expect("expected number");
  8. return number.trim().parse::<u32>().ok().expect("expected number");
  9. }
  10.  
  11. fn get_string() -> String {
  12. let mut input = String::new();
  13. io::stdin().read_line(&mut input).expect("expected string input");
  14. return input.trim().to_owned();
  15. }
  16.  
  17. fn main() {
  18. let input_count = get_number();
  19. let mut strings: HashMap<String, u32> = HashMap::new();
  20.  
  21. // Enter the strings into the map, updating if they already exist
  22. for _ in 0..input_count {
  23. let input_string = get_string();
  24. let string_entry = strings.entry(input_string).or_insert(0);
  25. *string_entry += 1;
  26. }
  27.  
  28. // Return the number of occurrences for each test string
  29. for _ in 0..get_number() {
  30. let test_string = get_string();
  31.  
  32. match strings.get(&test_string) {
  33. Some(count) => println!("{}", count),
  34. None => println!("0")
  35. }
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement