Menu
Coddy logo textTech

מיון לפי מפתח

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

sortedBy מחשבת מפתח השוואה לכל איבר ומחזירה רשימה חדשה בסדר עולה לפי המפתח. sortedByDescending הופכת את סדר המפתחות. מפתחות שווים שומרים על הסדר היחסי המקורי שלהם, כי המיון של Kotlin יציב.

בתוך main:

println(listOf("pear", "a", "kiwi", "to").sortedBy { it.length })

המילים מסודרות לפי אורך; pear נשארת לפני kiwi כי אורכיהן זהים.

sortedBy שומרת על הסדר המקורי בין איברים בעלי מפתחות שווים.

challenge icon

אתגר

בינוני

השלימו את shortWordsFirst עם הפרמטרים words: List<String>. החזירו את המילים בסדר עולה לפי האורך. בשוויון, שמרו על הסדר המקורי.

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

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

נסו בעצמכם

fun shortWordsFirst(words: List<String>): List<String> {
    // כתבו כאן את הפתרון שלכם.
    return emptyList()
}
fun main() {
    val wordsCount = readln().toInt()
    val words = mutableListOf<String>()
    for (i0 in 0 until wordsCount) {
        val wordsItem = readLine().orEmpty()
        words.add(wordsItem)
    }
    println(shortWordsFirst(words))
}
quiz iconבחנו את עצמכם

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

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

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