チャレンジ - 単語分析
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 61/63。
チャレンジ
上級者lines: List<String> をパラメータとして wordAnalytics を完成させてください。各行から [A-Za-z]+ を使って、連続する ASCII 文字のグループをすべて抽出し、小文字に変換して出現回数を数えます。頻度の高い順に、同率の場合はアルファベット順に、word=count のエントリを返してください。数字と句読点は単語を区切ります。
上記でより厳しい上限が示されていない限り、コレクションの各レベルの要素数は最大 100 で、整数の引数および整数コレクションの値は -1000 から 1000 の範囲です。解析対象として与えられるテキストには、説明されているように無効な表現や範囲外の表現が含まれる場合があります。
型 List<String> の値を返してください。提供されている入力/出力コードは変更しないでください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは要素数の後に各要素が続き、マップはエントリ数の後に各キーと値が続きます。ネストされたリストでは、各行について要素数と要素の形式を繰り返します。提供されている main は、戻り値の後に改行を 1 つ出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun wordAnalytics(lines: List<String>): List<String> {
// ここに解答を書いてください。
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))
}ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド