A entry API do Rust fornece uma visão de uma única entrada em um mapa, que pode ser um HashMap ou um BTreeMap.
A entrada pode estar ocupada ou vazia, e a API fornece métodos para modificar o conteúdo da entrada.
Neste exercício, você vai usar um HashMap, junto com os métodos da API entry, para resolver um problema simples de algoritmo.
Dados &[&str] representando as palavras de um artigo de revista, e &[&str] representando as palavras de um bilhete que você gostaria de enviar, você consegue montar seu bilhete recortando palavras da revista e colando-as numa carta?
Observações:
Você vai começar com a seguinte assinatura de função já esboçada:
pub fn can_construct_note(magazine: &[&str], note: &[&str]) -> bool {
todo!()
}
Dada a seguinte entrada
let magazine = "two times three is not four".split_whitespace().collect::<Vec<&str>>();
let note = "two times two is four".split_whitespace().collect::<Vec<&str>>();
assert!(!can_construct_note(&magazine, ¬e));
A função retorna false, já que a revista contém apenas uma ocorrência de "two" quando o bilhete exige duas delas.
A seguinte entrada vai funcionar:
let magazine = "Astronomer Amy Mainzer spent hours chatting with Leonardo DiCaprio for Netflix's 'Don't Look Up'".split_whitespace().collect::<Vec<&str>>();
let note = "Amy Mainzer chatting with Leonardo DiCaprio"
.split_whitespace()
.collect::<Vec<&str>>();
assert!(can_construct_note(&magazine, ¬e));
A função retorna true, pois a revista contém todas as palavras que o bilhete exige.
Crie sua conta no Exercism para aprender e dominar Rust com 99 exercícios e mentoria humana de verdade, tudo de graça.