You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
971 B
32 lines
971 B
3 years ago
|
// This stub file contains items which aren't used yet; feel free to remove this module attribute
|
||
|
// to enable stricter warnings.
|
||
|
#![allow(unused)]
|
||
|
|
||
|
use std::collections::HashMap;
|
||
|
|
||
|
pub fn can_construct_note(magazine: &[&str], note: &[&str]) -> bool {
|
||
|
let mut words_on_magazine: HashMap<&str, u16> = HashMap::new();
|
||
|
magazine.iter().for_each(|word| {
|
||
|
let count = if words_on_magazine.contains_key(word) {
|
||
|
*words_on_magazine.get(word).unwrap()
|
||
|
} else {
|
||
|
0
|
||
|
};
|
||
|
words_on_magazine.insert(word, count + 1);
|
||
|
});
|
||
|
|
||
|
for note_word in note {
|
||
|
if !words_on_magazine.contains_key(note_word) {
|
||
|
return false;
|
||
|
} else {
|
||
|
let count = words_on_magazine.get(note_word).unwrap() - 1;
|
||
|
if count > 0 {
|
||
|
words_on_magazine.insert(note_word, count);
|
||
|
} else {
|
||
|
words_on_magazine.remove(note_word);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
true
|
||
|
}
|