Menu
Coddy logo textTech

Stok Girişi

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

Stok alan ve satan, miktarları kontrol eden ve raporlar üreten bir Envanter programı oluştur. Her aşama aynı komut işlemcisini genişletsin. Komut alanlarını ayrıştır, haritayı değiştirmeden önce miktarları doğrula ve her komut için bir yanıt döndür. Geçersiz girdi stoğu değiştirmemelidir.

val fields = "ADD|pen|3".split("|")
challenge icon

Görev

Zor

commands: List<String> parametresiyle runInventory işlevini tamamla. Her işlev çağrısı için başlangıçta boş olan bir envanter oluştur. Her komut, alanları | ile ayrılmış tek bir dizedir. Öğe adları küçük harfli ASCII sözcüklerdir. En fazla 100 komut vardır. Her komutu gerçek ayırıcıya göre böl; komutlar, işlemleri için her zaman doğru sayıda alana sahiptir. Her komut için bir yanıt döndür. Miktarlar ayrıştırılmadan önce baştaki ve sondaki boşluklardan arındırılır; geçerli miktarlar 0 ile 1000 arasındadır. Geçersiz sayısal metin, Int aralığı dışındaki metin, negatif miktarlar veya 1000'den büyük miktarlar, durum değişikliği olmadan invalid yanıtını üretir. ADD|item|quantity desteği ekle: geçerli bir miktarı, başlangıçta sıfır olan ilgili öğenin stokuna ekle ve added yanıtını ver. Sıfır eklemek de öğeyi oluşturur. Girdi yalnızca bu adımda desteklenen işlemleri kullanır.

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ı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklanan şekilde geçersiz veya aralık dışı gösterimler içerebilir.

List<String> türünde bir değer döndür. Sağlanan girdi/çıktı kodunu koru. Bu kod, skaler bağımsız değişkenleri satır başına bir tane okur; bir liste, ardından elemanları 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 elemanlar biçimini tekrarlar. Sağlanan main, dönüş değerini ve ardından bir satır sonunu yazdırır. Listeler Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırma.

Kendin dene

fun runInventory(commands: List<String>): List<String> {
    // Çözümünüzü buraya yazın.
    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)
    }
    println(runInventory(commands))
}

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

Kendi başına pratik yap: Kotlin playground