Resumen - Contador de frecuencia
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
1Strings en profundidad
Visión general de los métodos de StringInterpolación de StringsIterar sobre StringsSplit y JoinRepaso - String Weaver4Bloques, Procs y Lambdas
¿Qué es un bloque?do..end vs llavesLa palabra clave yieldParámetros de bloqueProcs y LambdasResumen - Iterador personalizado7Hashes Parte 2
Hash.new con valores por defectoIteración de HashesHashes anidadosFusión y transformaciónResumen - Contador de frecuencia10Proyecto - Registros de Estudiantes
Descripción general del proyectoAgregar estudiante5Potencia de Enumerable
Select y RejectEncadenando MapReduce / Injectcount, all?, any?, none?group_by y partitionsort_by, min_by, max_byResumen - Data Pipeline