Menu
Coddy logo textTech

רשימות של רשימות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 16 מתוך 63.

רשימה מקוננת מאחסנת שורות כאיברים של רשימה חיצונית. הגודל החיצוני סופר את השורות; כל גודל פנימי סופר את האיברים של אותה שורה. השתמשו בשני אינדקסים כדי לבחור ערך אחד, ודאגו ששניהם יהיו בתוך הגבולות שלהם.

בתוך main:

val grid = listOf(listOf(2, 4), listOf(6, 8))
println(grid[1][0])

האינדקס אחד בוחר את השורה השנייה, ואז האינדקס אפס בוחר את הערך הראשון שלה.

האינדקס הראשון בוחר שורה, והשני בוחר איבר באותה שורה.

challenge icon

אתגר

בינוני

השלימו את cellAt עם הפרמטרים grid: List<List<Int>>, row: Int, column: Int. החזירו את התא שנבחר. השורה והעמודה שסופקו תמיד תקינות עבור אותה שורה.

אלא אם צוינו למעלה גבולות מחמירים יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכים של מספרים שלמים באוספים הם בטווח שבין -1000 ל-1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.

החזירו ערך מסוג Int. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.

נסו בעצמכם

fun cellAt(grid: List<List<Int>>, row: Int, column: Int): Int {
    // כתבו כאן את הפתרון שלכם.
    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)
    }
    val row = readln().toInt()
    val column = readln().toInt()
    println(cellAt(grid, row, column))
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: Kotlin אונליין