Menu
Coddy logo textTech

Değerleri Gruplama

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

groupBy, anahtarları bir lambda tarafından üretilen ve değerleri eşleşen öğelerin listeleri olan bir map döndürür. Her grup, üyelerinin özgün sırasını korur. Eksik bir gruba erişmek, diğer map aramalarında olduğu gibi null verir.

main içinde:

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

Bir karakter uzunluğundaki grup, a ve b öğelerini özgün sıralarında içerir.

groupBy, eşleşen her öğeyi hesaplanan anahtarı için bir listede depolar.

challenge icon

Görev

Orta

wordsOfLength işlevini words: List<String>, length: Int parametreleriyle tamamlayın. Sözcükleri uzunluklarına göre gruplandırın, ardından istenen grubu özgün sırasıyla döndürün. Grup yoksa boş bir liste döndürün.

Yukarıda daha katı 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ı koleksiyon 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.

List<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 okuyacak şekilde çalışır; 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önüş değerini ve ardından bir yeni satır yazdırır. Listeler, Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

fun wordsOfLength(words: List<String>, length: Int): List<String> {
    // Çözümünüzü buraya yazın.
    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)
    }
    val length = readln().toInt()
    println(wordsOfLength(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