Menu
Coddy logo textTech

Herausforderung – Wortanalyse

Teil des Abschnitts Logik & Ablauf der Kotlin-Journey von Coddy. Lektion 61 von 63.

challenge icon

Aufgabe

Experte

Vervollständige wordAnalytics mit dem Parameter lines: List<String>. Extrahiere aus jeder Zeile alle aufeinanderfolgenden Gruppen von ASCII-Buchstaben mit [A-Za-z]+, wandle sie in Kleinbuchstaben um und zähle die Vorkommen. Gib word=count-Einträge nach abnehmender Häufigkeit zurück; bei gleicher Häufigkeit sortiere alphabetisch. Ziffern und Satzzeichen trennen Wörter.

Sofern oben keine strengeren Grenzen angegeben sind, enthalten Sammlungen auf jeder Ebene höchstens 100 Elemente, und ganzzahlige Argumente sowie ganzzahlige Sammlungswerte liegen zwischen -1000 und 1000. Zum Parsen bereitgestellter Text kann ungültige oder außerhalb des zulässigen Bereichs liegende Darstellungen wie beschrieben enthalten.

Gib einen Wert vom Typ List<String> zurück. Behalte den bereitgestellten Eingabe-/Ausgabecode bei. Er liest skalare Argumente jeweils in einer eigenen Zeile; eine Liste beginnt mit ihrer Anzahl, gefolgt von ihren Elementen, und eine Map beginnt mit der Anzahl ihrer Einträge, gefolgt von jedem Schlüssel und Wert. Verschachtelte Listen wiederholen für jede Zeile das Format aus Anzahl und Elementen. Das bereitgestellte main gibt den Rückgabewert gefolgt von einem Zeilenumbruch aus. Listen verwenden das standardmäßige Klammerformat von Kotlin; gib keine zusätzlichen Bezeichnungen aus.

Probier es selbst

fun wordAnalytics(lines: List<String>): List<String> {
    // Schreibe deine Lösung hier.
    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))
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Kotlin-Playground