סיכום – השורה התקינה הראשונה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 45 מתוך 63.
אתגר
בינוניהשלם את firstValidRow באמצעות הפרמטרים grid: List<List<Int>>, minimumTotal: Int. החזר את האינדקס של השורה הראשונה שאינה מכילה ערכים שליליים וסכומה לפחות minimumTotal. לשורות ריקות יש סכום אפס והן אינן מכילות ערכים שליליים. החזר -1 אם אין שורה מתאימה.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכים של מספרים שלמים באוספים נמצאים בטווח שבין -1000 ל־1000. טקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזר ערך מטיפוס Int. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ולאחריו האיברים, ומפה מתחילה במספר הרשומות שלה ולאחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בתבנית הסטנדרטית של Kotlin עם סוגריים מרובעים; אל תדפיס תוויות נוספות.
נסו בעצמכם
fun firstValidRow(grid: List<List<Int>>, minimumTotal: 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 minimumTotal = readln().toInt()
println(firstValidRow(grid, minimumTotal))
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשר9זרימת בקרה מתקדמת
תנאי שמירהיציאה מלולאות מתויגותהמשך לולאות מתויגותפונקציות רקורסיביותסיכום – השורה התקינה הראשונהתרגלו בעצמכם: Kotlin אונליין