אתגר - בדיקת ניקוד
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 62 מתוך 63.
אתגר
מומחההשלם את 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))
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין