Özet - Envanter
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 17 / 56.
Görev
OrtaMağ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ç miktar0veya negatifse, anahtarı tamamen kaldırın.
Her işlemi uyguladıktan sonra şunları yazdırın:
- Kalan her öğe için alfabetik olarak sıralanmış,
<item>: <qty>formatında bir satır - 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: 6Kendin 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
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleri3Sözlükler
Sözlük Tanımlamaİsteğe Bağlı AramaSözlükleri GüncellemeSözlükleri YinelemeDeğerleri GruplandırmaÖzet - Envanter6Yüksek Seviyeli Fonksiyonlar Pt. 2
compactMapflatMapsorted(by:)İşlem Hatları OluşturmaÖzet - Liderlik Tablosu