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.
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:
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, ¬e));
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, ¬e));
La función devuelve true porque la revista contiene todas las palabras que la nota requiere.
Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.