Menu
Coddy logo textTech

יצירת קבוצות

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

קבוצה שומרת על איברים ייחודיים. setOf יוצרת קבוצה לקריאה בלבד; המרה של רשימה באמצעות toSet מסירה ערכים כפולים. לקבוצה יש בדיקת חברות, ולא אינדקסים לפי מיקום. מיין קבוצה לפני הפקת פלט מסודר.

בתוך main:

val ids = setOf(4, 2, 4, 7)
println(ids.size)

הארבע שחוזר מופיע פעם אחת בלבד, ומשאיר שלושה ערכים שונים.

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

challenge icon

אתגר

בינוני

השלימו את distinctCount עם הפרמטרים items: List<Int>. החזירו את מספר המספרים השלמים השונים.

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

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

נסו בעצמכם

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

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

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

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