Tracks
/
Rust
Rust
/
Ejercicios
/
Recortes de revista
Recortes de revista

Recortes de revista

Ejercicio de aprendizaje

Introducción

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

Instrucciones

En este ejercicio usarás un HashMap, junto con los métodos de la API entry, para resolver un problema de algoritmos sencillo.

Dados &[&str] que representan las palabras de un artículo de revista, y &[&str] que representan las palabras de una nota que quieres 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 importan; el hecho de que estés armando una nota con palabras de una revista no significa que estés dispuesto a cometer errores gramaticales.

Empezarás con la siguiente firma de función con el cuerpo vacío:

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

Dados los siguientes argumentos

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 porque la revista solo contiene una instancia de "two" cuando la nota requiere dos de ellas.

Los siguientes argumentos funcionarán:

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 porque la revista contiene todas las palabras que la nota requiere.

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

¿Todo listo para empezar Recortes de revista?

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