Menu
Coddy logo textTech

עדכון קבוצות

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

קבוצות שניתנות לשינוי תומכות ב-add וב-remove. הוספת ערך קיים או הסרת ערך שאינו נמצא בקבוצה משאירה את החברות בקבוצה ללא שינוי. התוצאה מסוג Boolean מציינת אם הקבוצה השתנתה.

בתוך main:

val tags = mutableSetOf("a", "b")
println(tags.add("a"))

התג a כבר היה קיים, לכן add מדווח שלא חל שינוי.

הגדרות add ו־remove מחזירות אם החברות השתנתה בפועל.

challenge icon

אתגר

בינוני

השלימו את addUnique עם הפרמטרים items: List<Int>, value: Int. העתיקו את הפריטים לקבוצה ניתנת לשינוי, הוסיפו את הערך והחזירו האם הוא נוסף כעת.

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

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

נסו בעצמכם

fun addUnique(items: List<Int>, value: Int): Boolean {
    // כתבו כאן את הפתרון שלכם.
    return false
}
fun main() {
    val itemsCount = readln().toInt()
    val items = mutableListOf<Int>()
    for (i0 in 0 until itemsCount) {
        val itemsItem = readln().toInt()
        items.add(itemsItem)
    }
    val value = readln().toInt()
    println(addUnique(items, value))
}
quiz iconבחנו את עצמכם

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

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

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