Menu
Coddy logo textTech

אתגר - ציוד משותף

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

challenge icon

אתגר

מומחה

השלם את sharedSupplies עם הפרמטרים requests: List<String>, available: List<String>. כל בקשה היא רשימה מופרדת בפסיקים של פריטים נדרשים. הסר רווחים מתחילת השדות ומסופם, המר שמות ASCII לאותיות קטנות, והשלך שדות ריקים. אפשר למלא בקשה אם כל הפריטים הנדרשים הייחודיים שלה מופיעים בפריטים הזמינים לאחר אותה נרמול של הסרת רווחים והמרה לאותיות קטנות. אפשר למלא בקשות ריקות. החזר index=ready או index=missing:item1,item2 עבור כל בקשה, כאשר השמות החסרים ייחודיים וממוינים. השתמש באינדקסים שמתחילים ב-0. הזמינות מציינת שייכות, לא כמות.

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

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

נסו בעצמכם

fun sharedSupplies(requests: List<String>, available: List<String>): List<String> {
    // כתבו כאן את הפתרון שלכם.
    return emptyList()
}
fun main() {
    val requestsCount = readln().toInt()
    val requests = mutableListOf<String>()
    for (i0 in 0 until requestsCount) {
        val requestsItem = readLine().orEmpty()
        requests.add(requestsItem)
    }
    val availableCount = readln().toInt()
    val available = mutableListOf<String>()
    for (i0 in 0 until availableCount) {
        val availableItem = readLine().orEmpty()
        available.add(availableItem)
    }
    println(sharedSupplies(requests, available))
}

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

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