Menu
Coddy logo textTech

Anahtara Göre İlişkilendirme

Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 39 / 63.

associateBy, hesaplanan bir anahtardan özgün bir öğeye eşlenen bir harita oluşturur. Anahtarlar tekrarlanırsa, o anahtara ait son öğe geçerli olur. Eşleşen her öğenin korunması gerekiyorsa groupBy; anahtar başına en son tek bir öğe amaçlanıyorsa associateBy kullanın.

main içinde:

val latest = listOf("a", "to", "b").associateBy { it.length }
println(latest[1])

a ve b'nin anahtarı bir olduğundan, b o anahtar için a'nın yerini alır.

associateBy, hesaplanan anahtarlar çakıştığında son öğeyi korur.

challenge icon

Görev

Orta

lastOfLength işlevini words: List<String> ve length: Int parametreleriyle tamamlayın. Anahtar olarak kelime uzunluğunu kullanarak associateBy uygulayın. İstenen uzunluktaki son girdi kelimesini, hiçbiri yoksa missing değerini döndürün.

Yukarıda daha sıkı sınırlar belirtilmedikçe, koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyonu değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı gibi geçersiz veya aralık dışı gösterimler içerebilir.

String türünde bir değer döndürün. Sağlanan girdi/çıktı kodunu koruyun. Bu kod, skaler bağımsız değişkenleri satır başına bir tane okur; bir liste, ardından öğeleri gelen sayısıyla başlar ve bir eşlem, ardından her anahtar ve değer gelen giriş sayısıyla başlar. İç içe listeler, her satır için sayı ve öğeler biçimini tekrarlar. Sağlanan main, döndürülen değeri ve ardından bir satır sonunu yazdırır. Listeler Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

fun lastOfLength(words: List<String>, length: Int): String {
    // Çözümünüzü buraya yazın.
    return ""
}
fun main() {
    val wordsCount = readln().toInt()
    val words = mutableListOf<String>()
    for (i0 in 0 until wordsCount) {
        val wordsItem = readLine().orEmpty()
        words.add(wordsItem)
    }
    val length = readln().toInt()
    println(lastOfLength(words, length))
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground