Menu
CoddyTech

Menggabungkan Perbandingan

Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 37 dari 63.

Gunakan sortedWith untuk memberikan pembanding. compareBy<String> { it.length } membandingkan panjang kata; merangkai .thenBy { it } akan membandingkan kata itu sendiri jika panjangnya sama. Kunci perbandingan berikutnya hanya digunakan jika semua kunci sebelumnya sama.

Di dalam main:

val order = compareBy<String> { it.length }.thenBy { it }
println(listOf("bb", "a", "aa").sortedWith(order))

Panjang menempatkan a di urutan pertama; perbandingan alfabetis memecahkan seri antara dua karakter.

thenBy memecahkan seri tanpa mengganti kunci perbandingan sebelumnya.

challenge icon

Tantangan

Sedang

Lengkapi wordOrder dengan parameter words: List<String>. Urutkan kata ASCII huruf kecil berdasarkan panjang yang semakin bertambah, lalu berdasarkan urutan alfabet jika panjangnya sama.

Kecuali batas yang lebih ketat dinyatakan di atas, koleksi berisi paling banyak 100 elemen pada setiap tingkat, dan argumen bilangan bulat serta nilai koleksi bilangan bulat berada di antara -1000 dan 1000. Teks yang diberikan untuk diurai dapat mencakup representasi yang tidak valid atau di luar rentang seperti yang dijelaskan.

Kembalikan nilai bertipe List<String>. Pertahankan kode input/output yang disediakan. Kode ini membaca argumen skalar satu per baris; list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan map dimulai dengan jumlah entrinya, lalu diikuti setiap key dan value. List bersarang mengulangi format jumlah dan elemen untuk setiap baris. main yang disediakan mencetak nilai kembalian diikuti satu karakter baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan cetak label tambahan.

Coba sendiri

fun wordOrder(words: List<String>): List<String> {
    // Tulis solusimu di sini.
    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(wordOrder(words))
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Playground Kotlin