Repaso: contador de frecuencias
Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 37 de 56.
Reúna los hashes con valores por defecto, la iteración y la ordenación de los capítulos anteriores en un desafío clásico: un informe de frecuencia de palabras.
Desafío
IntermedioLee una sola línea de entrada, una oración. Construye un Hash.new(0) mapeando cada palabra (dividida por espacios en blanco, convertida a minúsculas) a su frecuencia.
Luego imprime:
- El número total de palabras únicas
- Una línea por palabra en orden de frecuencia descendente (los empates se resuelven alfabéticamente por palabra) en este formato:
<word>: <count>
Para la entrada the quick brown fox jumps over the lazy dog the dog, la salida es:
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Pruébalo tú mismo
input = gets.chomp
# TODO: construir un Hash.new(0) de palabra → conteo, luego imprimir:
# 1) el número de palabras únicas
# 2) entradas ordenadas por conteo descendente, empates por palabra ascendente
Todas las lecciones de Lógica y flujo
1Cadenas en profundidad
Descripción general de los métodos de cadenasInterpolación de cadenasIteración sobre cadenasSeparar y unirRepaso: Tejedor de cadenas4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end frente a llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasRepaso: iterador personalizado7Hashes Parte 2
Hash.new con valores predeterminadosIteración de hashesHashes anidadosCombinación y transformaciónRepaso: contador de frecuencias10Proyecto - Registros de estudiantes
Descripción general del proyectoAgregar estudiante5Potencia Enumerable
Select y RejectEncadenamiento de MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byRepaso: canalización de datosPractica por tu cuenta: Compilador de Ruby online