Trilhas
/
Rust
Rust
/
Exercícios
/
Recorte de revista
Recorte de revista

Recorte de revista

Exercício de aprendizagem

Introdução

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.

Instruções

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:

  • Isso implica recortar e colar de verdade; a revista precisa conter pelo menos tantas cópias de cada palavra quantas o bilhete exigir.
  • O uso de maiúsculas e minúsculas importa; só porque você está montando um bilhete com palavras recortadas de uma revista, não significa que você aceite escrever com erros de gramática.

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, &note));

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, &note));

A função retorna true, pois a revista contém todas as palavras que o bilhete exige.

Editar via GitHub O link abre em uma nova janela ou aba
Rust Exercism

Tudo pronto para começar Recorte de revista?

Crie sua conta no Exercism para aprender e dominar Rust com 99 exercícios e mentoria humana de verdade, tudo de graça.