Repaso: Contador de palabras
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 34 de 66.
Desafío
FácilRecibirás una oración como entrada. Cuenta cuántas veces aparece cada palabra en la oración y almacena los conteos en un hash map. Luego, imprime cada palabra única junto con su conteo.
Requisitos:
- Importa
HashMapdestd::collections - Crea un hash map mutable con los tipos
HashMap<String, i32> - Lee la oración de entrada como una sola línea
- Divide la oración en palabras individuales usando
.split_whitespace() - Para cada palabra, usa
.entry()con.or_insert(0)para inicializar el conteo a0si la palabra no existe - Después de usar
.or_insert(0), incrementa el conteo en1para esa palabra - Después de procesar todas las palabras, itera sobre el hash map e imprime cada palabra con su conteo en el formato:
[word]: [count]
Entrada:
- Una sola línea que contiene una oración con palabras separadas por espacios (por ejemplo,
hello world hello rust world hello)
Salida:
- Una línea por cada palabra única en el formato:
[word]: [count] - El orden de las líneas de salida puede variar entre las ejecuciones de prueba
Pruébalo tú mismo
use std::collections::HashMap;
use std::io;
fn main() {
// Leer la oración de entrada
let mut sentence = String::new();
io::stdin().read_line(&mut sentence).expect("Failed to read line");
let sentence = sentence.trim();
// Crear un mapa hash mutable para almacenar el conteo de palabras
let mut word_count: HashMap<String, i32> = HashMap::new();
// TODO: Escribe tu código a continuación
// Dividir la oración en palabras y contar cada palabra
// Imprimir cada palabra con su conteo
}Todas las lecciones de Logic & Flow
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo final