בדיקת תת־קבוצה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 14 מתוך 63.
available.containsAll(required) בודק אם כל האיברים הנדרשים זמינים. רשומות כפולות ברשימת האיברים הנדרשים אינן מחייבות עותקים מרובים, כי מדובר בבדיקת שייכות. אוסף נדרש ריק תמיד נכלל.
בתוך main:
val available = setOf("pen", "pad")
println(available.containsAll(listOf("pen", "pen")))שתי הדרישות מבקשות את אותה חברות בקבוצה, והיא מתקיימת.
containsAll בודקת שייכות, ולא כמה עותקים זמינים.
אתגר
בינוניהשלימו את canCover עם הפרמטרים available: List<String>, required: List<String>. החזירו האם כל פריט נדרש נמצא בין הפריטים הזמינים. זוהי בעיית שייכות, לא בעיית כמות.
אלא אם צוין לעיל טווח מחמיר יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים השלמים והערכים השלמים באוספים הם בין -1000 ל-1000. הטקסט המסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג Boolean. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על המבנה של מספר איברים ואחריו איברים עבור כל שורה. ה-main שסופקה מדפיסה את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun canCover(available: List<String>, required: List<String>): Boolean {
// כתבו כאן את הפתרון שלכם.
return false
}
fun main() {
val availableCount = readln().toInt()
val available = mutableListOf<String>()
for (i0 in 0 until availableCount) {
val availableItem = readLine().orEmpty()
available.add(availableItem)
}
val requiredCount = readln().toInt()
val required = mutableListOf<String>()
for (i0 in 0 until requiredCount) {
val requiredItem = readLine().orEmpty()
required.add(requiredItem)
}
println(canCover(available, required))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין