Menu
Coddy logo textTech

Attraversare le righe

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 17 di 63.

Usa un ciclo esterno per le righe e un ciclo interno per i valori. Iterare direttamente su ogni riga supporta naturalmente lunghezze diverse delle righe e righe vuote, senza presupporre una larghezza rettangolare.

All'interno di main:

val rows = listOf(listOf(2, 3), emptyList(), listOf(4))
var total = 0
for (row in rows) {
    for (value in row) total += value
}
println(total)

La riga vuota non contribuisce; le altre righe contribuiscono con cinque e quattro.

Itera sugli elementi effettivi di ogni riga invece di presumere una larghezza fissa.

challenge icon

Sfida

Medio

Completa gridTotal con il parametro grid: List<List<Int>>. Somma ogni valore di ogni riga. Sono ammesse righe vuote e una lista esterna vuota.

Se sopra non sono specificati limiti più rigorosi, le collezioni contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle collezioni sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari, uno per riga; una lista inizia con il suo conteggio seguito dai suoi elementi e una mappa inizia con il conteggio delle voci seguito da ogni chiave e valore. Le liste annidate ripetono il formato conteggio-ed-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard di Kotlin con parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun gridTotal(grid: List<List<Int>>): Int {
    // Scrivi qui la tua soluzione.
    return 0
}
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(gridTotal(grid))
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin