Menu
Coddy logo textTech

Sfida - Analisi delle parole

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

challenge icon

Sfida

Esperto

Completa wordAnalytics con il parametro lines: List<String>. Estrai da ogni riga tutti i gruppi consecutivi di lettere ASCII con [A-Za-z]+, trasformali in minuscolo e conta le occorrenze. Restituisci le voci word=count in ordine di frequenza decrescente, risolvendo le parità in ordine alfabetico. Le cifre e la punteggiatura separano le parole.

Salvo che sopra non siano indicati limiti più restrittivi, 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 List<String>. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio, seguito dai suoi elementi, e una mappa inizia con il conteggio delle sue voci, seguito da ogni chiave e valore. Le liste annidate ripetono il formato conteggio-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un a capo. Le liste usano il formato standard di Kotlin con parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun wordAnalytics(lines: List<String>): List<String> {
    // Scrivi qui la tua soluzione.
    return emptyList()
}
fun main() {
    val linesCount = readln().toInt()
    val lines = mutableListOf<String>()
    for (i0 in 0 until linesCount) {
        val linesItem = readLine().orEmpty()
        lines.add(linesItem)
    }
    println(wordAnalytics(lines))
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin