チャレンジ - スコア監査
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 62/63。
チャレンジ
上級者rows: List<String> パラメーターを受け取る scoreAudit を完成させてください。各行は name:score の形式です。: で分割した結果が正確に2つのフィールドになり、トリミングした名前が [a-z]+ に一致し、トリミングしたスコアを0から100までの Int として解析できる場合を除き、その行を無視してください。同じ名前が複数回現れる場合は、最後に現れた有効なスコアを保持します。無効な行が以前のスコアを置き換えることはありません。name=score のエントリをスコアの降順で返し、同点の場合はアルファベット順に並べてください。
上記でより厳しい範囲が指定されていない限り、各レベルのコレクションに含まれる要素は最大100個であり、整数の引数および整数コレクションの値は-1000から1000までです。解析対象として提供されるテキストには、説明されているように無効な表現や範囲外の表現が含まれる場合があります。
型 List<String> の値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は1行に1つずつ読み取られます。リストは要素数に続いて各要素が並び、マップはエントリ数に続いて各キーと値が並びます。ネストされたリストでは、各行について要素数と要素の形式が繰り返されます。提供された main は、返り値の後に改行を1つ付けて出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun scoreAudit(rows: List<String>): List<String> {
// ここに解答を書いてください。
return emptyList()
}
fun main() {
val rowsCount = readln().toInt()
val rows = mutableListOf<String>()
for (i0 in 0 until rowsCount) {
val rowsItem = readLine().orEmpty()
rows.add(rowsItem)
}
println(scoreAudit(rows))
}ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド