Menu
Coddy logo textTech

בדיקת מפתחות

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

containsKey בודקת אם מפתח קיים. containsValue מחפשת ערכים במקום זאת. בדיקת שייכות באמצעות key in map בודקת גם היא מפתחות. יש להבחין בין השאלות האלה כאשר למפתח ולערך יש אותו טקסט.

בתוך main:

val codes = mapOf("red" to "R")
println("R" in codes)

R הוא ערך, לא מפתח. המפתח היחיד הוא red.

השתמשו ב־containsKey או ב־in עבור מפתחות; השתמשו ב־containsValue עבור ערכים.

challenge icon

אתגר

בינוני

השלימו את keyExists עם הפרמטרים stock: Map<String, Int>, key: String. החזירו האם המפתח קיים, גם כאשר הערך המאוחסן שלו הוא אפס.

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

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

נסו בעצמכם

fun keyExists(stock: Map<String, Int>, key: String): Boolean {
    // כתוב את הפתרון שלך כאן.
    return false
}
fun main() {
    val stockCount = readln().toInt()
    val stock = mutableMapOf<String, Int>()
    for (i0 in 0 until stockCount) {
        val stockKey = readln()
        val stockValue = readln().toInt()
        stock[stockKey] = stockValue
    }
    val key = readLine().orEmpty()
    println(keyExists(stock, key))
}
quiz iconבחנו את עצמכם

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

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

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