פעולות על קבוצות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 13 מתוך 63.
איחוד משאיר את האיברים שנמצאים באחת הקבוצות או בשתיהן, חיתוך משאיר את האיברים המשותפים, וחיסור משאיר את האיברים מהקבוצה הראשונה שאינם נמצאים בקבוצה השנייה. פעולות אלה מחזירות קבוצות חדשות; החיסור תלוי בסדר האופרנדים.
בתוך main:
val a = setOf(1, 2, 3)
val b = setOf(2, 4)
println(a.intersect(b).sorted())רק 2 מופיע בשתי הקבוצות.
חיתוך משאיר את האיברים המשותפים; חיסור הוא פעולה כיוונית.
אתגר
בינוניהשלם את sharedItems עם הפרמטרים first: List<Int>, second: List<Int>. החזר מספרים שלמים ייחודיים שמופיעים בשתי הקלטות, ממוינים בסדר עולה.
אלא אם צוינו למעלה גבולות מחמירים יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים השלמים והערכים השלמים באוספים הם בין -1000 ל-1000. טקסט המסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזר ערך מטיפוס List<Int>. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו איבריה, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על התבנית של מספר איברים ואחריו האיברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו שורה חדשה. רשימות משתמשות בתבנית הרגילה של Kotlin עם סוגריים מרובעים; אל תדפיס תוויות נוספות.
נסו בעצמכם
fun sharedItems(first: List<Int>, second: List<Int>): List<Int> {
// כתבו כאן את הפתרון שלכם.
return emptyList()
}
fun main() {
val firstCount = readln().toInt()
val first = mutableListOf<Int>()
for (i0 in 0 until firstCount) {
val firstItem = readln().toInt()
first.add(firstItem)
}
val secondCount = readln().toInt()
val second = mutableListOf<Int>()
for (i0 in 0 until secondCount) {
val secondItem = readln().toInt()
second.add(secondItem)
}
println(sharedItems(first, second))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין