Menu
CoddyTech

Meratakan List Bertingkat

Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 19 dari 63.

flatten menggabungkan list bagian dalam menjadi satu list, mengikuti urutan baris luar lalu urutan elemen bagian dalam. Fungsi ini menghapus satu tingkat penyarangan, tetapi tidak menghapus duplikat atau mengurutkan nilai.

Di dalam main:

val rows = listOf(listOf(3, 1), emptyList(), listOf(1, 2))
println(rows.flatten())

Urutan baris tetap dipertahankan, termasuk kedua salinan angka satu.

flatten menghapus satu tingkat bersarang pada koleksi dan mempertahankan urutan elemen.

challenge icon

Tantangan

Sedang

Lengkapi flattenRows dengan parameter grid: List<List<Int>>. Kembalikan semua nilai baris sebagai satu list sesuai urutan baris.

Kecuali jika batas yang lebih ketat dinyatakan di atas, koleksi berisi paling banyak 100 elemen di setiap tingkat, dan argumen integer serta nilai dalam koleksi integer berada di antara -1000 dan 1000. Teks yang diberikan untuk parsing dapat mencakup representasi yang tidak valid atau di luar rentang, seperti yang dijelaskan.

Kembalikan nilai bertipe List<Int>. Pertahankan kode input/output yang diberikan. Kode tersebut membaca argumen skalar satu per baris; sebuah list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan sebuah map dimulai dengan jumlah entrinya, lalu diikuti setiap key dan value. List bertingkat mengulangi format jumlah-elemen untuk setiap baris. main yang diberikan mencetak nilai kembalian, lalu satu karakter baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan mencetak label tambahan.

Coba sendiri

fun flattenRows(grid: List<List<Int>>): List<Int> {
    // Tulis solusimu di sini.
    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(flattenRows(grid))
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Playground Kotlin