Menu
Coddy logo textTech

אתגר - בדיקת ניקוד

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

challenge icon

אתגר

מומחה

השלם את scoreAudit עם הפרמטרים rows: List<String>. כל שורה היא name:score. התעלם משורות אלא אם הפיצול לפי : מניב בדיוק שני שדות, השם לאחר הסרת רווחים תואם ל-[a-z]+, והציון לאחר הסרת רווחים ניתן להמרה ל-Int בטווח 0 עד 100. במקרה של שמות חוזרים, שמור את הציון התקף האחרון; שורות לא תקינות לעולם אינן מחליפות ציונים קודמים. החזר ערכים בפורמט name=score בסדר ציונים יורד, ובמקרה של תיקו — בסדר אלפביתי.

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

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

נסו בעצמכם

fun scoreAudit(rows: List<String>): List<String> {
    // כתבו את הפתרון שלכם כאן.
    return emptyList()
}
fun main() {
    val rowsCount = readln().toInt()
    val rows = mutableListOf<String>()
    for (i0 in 0 until rowsCount) {
        val rowsItem = readLine().orEmpty()
        rows.add(rowsItem)
    }
    println(scoreAudit(rows))
}

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

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