Menu
Coddy logo textTech

Сводки по строкам

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

Сохраняйте один результат для каждой строки, сбрасывая накопитель строки внутри внешнего цикла. Сводка для пустой строки всё равно полезна: сумма, равная нулю, сохраняет соответствие между входными строками и позициями вывода.

Внутри main:

val rows = listOf(listOf(2, 3), emptyList(), listOf(4))
val sums = mutableListOf<Int>()
for (row in rows) sums.add(row.sum())
println(sums)

Для каждой строки вычисляется отдельная сумма, включая ноль для пустой строки.

Итог по строкам сохраняет одну позицию вывода для каждой входной строки.

challenge icon

Задание

Средне

Дополните rowTotals параметром grid: List<List<Int>>. Верните сумму каждой строки в порядке их следования во входных данных. Пустая строка имеет сумму, равную нулю.

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

Верните значение типа List<Int>. Сохраните предоставленный код ввода/вывода. Он считывает скалярные аргументы по одному в строке; список начинается с его количества элементов, за которым следуют эти элементы, а map начинается с количества записей, за которым следуют каждый ключ и значение. Для каждого вложенного списка повторяется формат «количество и элементы». Предоставленный main выводит возвращаемое значение, за которым следует один символ новой строки. Списки используют стандартный формат Kotlin со скобками; не выводите дополнительные метки.

Попробуйте сами

fun rowTotals(grid: List<List<Int>>): List<Int> {
    // Напишите ваше решение здесь.
    return emptyList()
}
fun main() {
    val gridCount = readln().toInt()
    val grid = mutableListOf<List<Int>>()
    for (i0 in 0 until gridCount) {
        val gridItemCount = readln().toInt()
        val gridItem = mutableListOf<Int>()
        for (i1 in 0 until gridItemCount) {
            val gridItemItem = readln().toInt()
            gridItem.add(gridItemItem)
        }
        grid.add(gridItem)
    }
    println(rowTotals(grid))
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Песочница Kotlin