Menu
CoddyTech

Menyimpan Kontak

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

Buat Buku Kontak yang menyimpan, mencari, dan menghapus kontak, lalu mencantumkan nama dan melaporkan statistik. Map yang dapat diubah menyimpan satu nomor telepon untuk setiap nama. Perintah dalam satu pemanggilan menggunakan map yang sama; setiap pemanggilan baru dimulai dari awal. Kode input yang disediakan membaca tiga list dengan jumlah elemen yang sama. Implementasikan perulangan perintah di contactBook.

val contacts = mutableMapOf<String, String>()
challenge icon

Tantangan

Sulit

Lengkapi contactBook dengan parameter commands: List<String>, names: List<String>, phones: List<String>. Buat buku kontak di memori yang dimulai dalam keadaan kosong pada setiap pemanggilan fungsi. Ketiga list memiliki panjang yang sama, paling banyak 100. Pada setiap indeks, commands memilih operasi, sedangkan names dan phones menyediakan argumennya. Nama berupa kata ASCII huruf kecil yang tidak kosong, sedangkan nomor telepon berupa string digit yang tidak kosong dan harus tetap berupa string agar angka nol di awal tidak hilang. Setiap perintah menghasilkan satu balasan dalam list yang dikembalikan. Dukung PUT: simpan atau ganti nomor telepon untuk nama yang diberikan, lalu berikan balasan saved. Input hanya berisi perintah yang didukung pada langkah ini. String argumen yang diabaikan dapat berupa teks apa pun yang tidak kosong.

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

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

Coba sendiri

fun contactBook(commands: List<String>, names: List<String>, phones: List<String>): List<String> {
    // Tulis solusimu di sini.
    return emptyList()
}
fun main() {
    val commandsCount = readln().toInt()
    val commands = mutableListOf<String>()
    for (i0 in 0 until commandsCount) {
        val commandsItem = readLine().orEmpty()
        commands.add(commandsItem)
    }
    val namesCount = readln().toInt()
    val names = mutableListOf<String>()
    for (i0 in 0 until namesCount) {
        val namesItem = readLine().orEmpty()
        names.add(namesItem)
    }
    val phonesCount = readln().toInt()
    val phones = mutableListOf<String>()
    for (i0 in 0 until phonesCount) {
        val phonesItem = readLine().orEmpty()
        phones.add(phonesItem)
    }
    println(contactBook(commands, names, phones))
}

Semua pelajaran di Logika & Alur

Latihan sendiri: Playground Kotlin