Menu
Coddy logo textTech

Испытание — Аудит баллов

Часть раздела Логика и управление потоком путешествия по Kotlin на Coddy. Урок 62 из 63.

challenge icon

Задание

Эксперт

Завершите scoreAudit с параметрами rows: List<String>. Каждая строка имеет вид name:score. Пропускайте строки, если разделение по : не даёт ровно два поля, имя после удаления начальных и конечных пробелов не соответствует [a-z]+ или оценка после удаления начальных и конечных пробелов не преобразуется в Int в диапазоне от 0 до 100. Для повторяющихся имён сохраняйте последнюю допустимую оценку; недопустимые строки никогда не заменяют ранее сохранённые оценки. Верните записи name=score, отсортированные по убыванию оценки, а при равных оценках — в алфавитном порядке.

Если выше не указаны более строгие ограничения, коллекции на каждом уровне содержат не более 100 элементов, а целочисленные аргументы и целочисленные значения коллекций находятся в диапазоне от -1000 до 1000. Текст, предоставленный для разбора, может содержать недопустимые представления или представления со значениями вне диапазона, как описано выше.

Верните значение типа List<String>. Сохраните предоставленный код ввода/вывода. Он считывает скалярные аргументы по одному в строке; список начинается с его количества, за которым следуют его элементы, а карта начинается с количества её записей, за которым следуют каждый ключ и значение. Вложенные списки используют формат «количество и элементы» для каждой строки. Предоставленный main выводит возвращаемое значение, за которым следует один перевод строки. Списки используют стандартный формат 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