Menu
Coddy logo textTech

Mapas de frecuencia

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 8 de 63.

Un mapa de frecuencias almacena cuántas veces aparece cada elemento. Para cada entrada, lee su recuento actual o cero y escribe uno más. Esto combina una consulta segura, una asignación mutable y la iteración.

Dentro de main:

val counts = mutableMapOf<String, Int>()
for (word in listOf("red", "blue", "red")) {
    counts[word] = (counts[word] ?: 0) + 1
}
println(counts["red"])

El recuento de red se inserta como uno y después se actualiza a dos.

Una frecuencia faltante comienza en cero antes de añadir la aparición actual.

challenge icon

Desafío

Intermedio

Completa wordFrequency con los parámetros words: List<String>, target: String. Construye un mapa de frecuencias y devuelve cuántas veces aparece target. La coincidencia distingue entre mayúsculas y minúsculas.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, tal como se describe.

Devuelve un valor de tipo Int. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con la cantidad de sus entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas utilizan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun wordFrequency(words: List<String>, target: String): Int {
    // Escribe tu solución aquí.
    return 0
}
fun main() {
    val wordsCount = readln().toInt()
    val words = mutableListOf<String>()
    for (i0 in 0 until wordsCount) {
        val wordsItem = readLine().orEmpty()
        words.add(wordsItem)
    }
    val target = readLine().orEmpty()
    println(wordFrequency(words, target))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin