Podsumowania wierszy
Część sekcji Logika i przepływ danych ścieżki Kotlin w Coddy. Lekcja 18 z 63.
Zachowaj jeden wynik dla każdego wiersza, resetując akumulator wiersza wewnątrz pętli zewnętrznej. Podsumowanie pustego wiersza nadal jest przydatne: suma równa zero zachowuje zgodność między wierszami wejściowymi a pozycjami wyjściowymi.
Wewnątrz main:
val rows = listOf(listOf(2, 3), emptyList(), listOf(4))
val sums = mutableListOf<Int>()
for (row in rows) sums.add(row.sum())
println(sums)Dla każdego wiersza jest jedna suma, w tym zero dla pustego wiersza.
Podsumowanie wierszy zachowuje jedną pozycję wyjściową dla każdego wiersza wejściowego.
Wyzwanie
ŚredniUzupełnij rowTotals parametrem grid: List<List<Int>>. Zwróć sumę każdego wiersza w kolejności wejściowej. Suma pustego wiersza wynosi zero.
O ile wyżej nie określono bardziej rygorystycznych ograniczeń, kolekcje zawierają maksymalnie 100 elementów na każdym poziomie, a argumenty całkowite i wartości całkowite w kolekcjach mieszczą się w przedziale od -1000 do 1000. Tekst przekazany do parsowania może zawierać nieprawidłowe lub wykraczające poza zakres reprezentacje, jak opisano.
Zwróć wartość typu List<Int>. Zachowaj dostarczony kod wejścia/wyjścia. Odczytuje on argumenty skalarne, po jednym w każdym wierszu; lista zaczyna się od liczby elementów, po której następują jej elementy, a mapa — od liczby wpisów, po której następuje każdy klucz i jego wartość. Zagnieżdżone listy powtarzają format liczby elementów i elementów dla każdego wiersza. Dostarczona funkcja main wyświetla zwracaną wartość, a następnie jeden znak nowej linii. Listy używają standardowego formatu Kotlin w nawiasach kwadratowych; nie wyświetlaj żadnych dodatkowych etykiet.
Spróbuj swoich sił
fun rowTotals(grid: List<List<Int>>): List<Int> {
// Napisz tutaj swoje rozwiązanie.
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))
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ danych
1Mapy, część 1
Tworzenie mapBezpieczne odczyty z mapAktualizowanie mapSprawdzanie kluczyPowtórka – Stock Desk4Kolekcje zagnieżdżone
Listy listPrzechodzenie przez wierszePodsumowania wierszySpłaszczanie list zagnieżdżonychPowtórka – rzędy miejsc7Potoki operacji na kolekcjach
Przekształcanie za pomocą mapFiltrowanie wartościTestowanie reguł kolekcjiAgregowanie za pomocą foldPodsumowanie — zatwierdzone sumy2Mapy, część 2
Iterowanie po elementach mapyKlucze i wartościMapy częstotliwościZagnieżdżone mapyPodsumowanie — raport częstotliwości5Projekt – książka kontaktów
Zapisywanie kontaktówWyszukiwanie kontaktów3Zbiory i przynależność
Tworzenie zbiorówAktualizowanie zbiorówOperacje na zbiorachSprawdzanie podzbiorówPodsumowanie – goście wydarzenia6Wartości funkcji
Pisanie funkcji lambdaTypy funkcjiPrzekazywanie funkcjiPrzechwytywane zmiennePodsumowanie — konfigurowalny wynik9Zaawansowane sterowanie przebiegiem programu
Klauzule ochronnePrzerywanie pętli z etykietąKontynuowanie pętli z etykietąFunkcje rekurencyjnePodsumowanie — pierwszy poprawny wierszPoćwicz samodzielnie: Edytor online Kotlin