Menu
Coddy logo textTech

Mappe di frequenza

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 8 di 63.

Una mappa delle frequenze memorizza quante volte compare ciascun elemento. Per ogni input, leggi il conteggio attuale oppure zero e scrivi di nuovo un valore in più. Questo combina una ricerca sicura, un'assegnazione modificabile e l'iterazione.

All'interno di main:

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

Il conteggio di red viene inserito come uno, poi aggiornato a due.

Una frequenza mancante parte da zero prima che venga aggiunta l'occorrenza attuale.

challenge icon

Sfida

Medio

Completa wordFrequency con i parametri words: List<String>, target: String. Crea una mappa delle frequenze e restituisci quante volte compare target. La corrispondenza distingue tra maiuscole e minuscole.

A meno che non siano indicati limiti più rigorosi sopra, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l’analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il numero dei suoi elementi, seguito dagli elementi, mentre una mappa inizia con il numero delle sue voci, seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato numero-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard di Kotlin tra parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun wordFrequency(words: List<String>, target: String): Int {
    // Scrivi qui la tua soluzione.
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin