Rutas
/
Rust
Rust
/
Ejercicios
/
Recorte de revista
Recorte de revista

Recorte de revista

Ejercicio de aprendizaje

Introducción

La API de entradas de Rust ofrece una vista de una única entrada de un mapa, que puede ser un HashMap o un BTreeMap. La entrada puede estar ocupada o vacante, y la API proporciona métodos para modificar el contenido de la entrada.

Instrucciones

En este ejercicio vas a usar un HashMap, junto con los métodos de la API de entradas, para resolver un problema sencillo de algoritmos.

Dados &[&str] que representan las palabras de un artículo de revista y &[&str] que representan las palabras de una nota que te gustaría enviar, ¿puedes componer tu nota recortando palabras de la revista y pegándolas en una carta?

Notas:

  • Esto implica recortar y pegar físicamente; la revista debe contener al menos tantas copias de cada palabra como requiera la nota.
  • Las mayúsculas y minúsculas importan; el hecho de que estés pegando una nota compuesta con palabras de una revista no significa que estés dispuesto a ser agramatical.

Empezarás con la siguiente firma de función sin implementar:

pub fn can_construct_note(magazine: &[&str], note: &[&str]) -> bool {
    todo!()
}

Dada la siguiente 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));

La función devuelve false, ya que la revista solo contiene una instancia de "two" cuando la nota requiere dos.

La siguiente entrada sí 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));

La función devuelve true, ya que la revista contiene todas las palabras que requiere la nota.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Rust Exercism

¿Listo para empezar Recorte de revista?

Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.