Menu
Coddy logo textTech

Özet - Envanter

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 17 / 56.

challenge icon

Görev

Orta

Mağaza envanterini takip ediyorsunuz. Tek bir satır girdi okuyun: başlangıçta boş olan stock adındaki bir [String: Int] sözlüğüne karşı gerçekleştirilecek virgülle ayrılmış işlemler listesi. Her işlem şunlardan biridir:

  • in:<item>:<qty> öğeye miktar ekleyin (varsayılan alt simge -default-subscript- desenini kullanın)
  • out:<item>:<qty> miktarı çıkarın. Eğer sonuç miktar 0 veya negatifse, anahtarı tamamen kaldırın.

Her işlemi uyguladıktan sonra şunları yazdırın:

  1. Kalan her öğe için alfabetik olarak sıralanmış, <item>: <qty> formatında bir satır
  2. Kalan her değerin toplamı olan Total units: <n>

in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5 girdisi için çıktı şöyledir:

apple: 6
Total units: 6

Kendin dene

let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]

// YAPILACAK: her işlemi tür:öğe:miktar olarak ayrıştırın; in ekler, out çıkarır;
// miktarı <= 0'a düşen anahtarları kaldırın; sıralanmış satırları + toplamı yazdırın

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