Rangkuman: Inventaris
Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 17 dari 56.
Tantangan
SedangKamu sedang melacak inventaris toko. Baca satu baris input: daftar operasi yang dipisahkan koma terhadap [String: Int] bernama stock yang awalnya kosong. Setiap operasi berupa salah satu dari:
in:<item>:<qty>tambahkan jumlah ke item (gunakan pola subskrip default)out:<item>:<qty>kurangi jumlah. Jika jumlah hasilnya0atau kurang, hapus key sepenuhnya.
Setelah menerapkan setiap operasi, cetak:
- Satu baris untuk setiap item yang tersisa, diurutkan secara alfabetis, dengan format
<item>: <qty> Total units: <n>untuk semua nilai yang tersisa
Untuk input in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, outputnya adalah:
apple: 6
Total units: 6Coba sendiri
let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]
// TODO: uraikan setiap op sebagai kind:item:qty; in menambah, out mengurangi;
// hapus kunci yang qty-nya turun menjadi <= 0; cetak baris yang diurutkan + total
Semua pelajaran di Logika dan Alur
1Mendalami string
Jumlah dan indeksHuruf besar, huruf kecil, dan hapus spasiMencari dalam stringMemisahkan dan menggabungkanMengganti substringUlasan: Memeriksa nama pengguna4set
Membuat setGabungan dan IrisanSelisih dan Selisih SimetrisHimpunan Bagian dan Himpunan SupersetRingkasan: Filter Tag7Proyek: Pelacak Kebiasaan
Gambaran Umum ProyekTandai Selesai2Rentang dan Langkah
Rentang Tertutup vs Setengah TerbukaLangkahMetode RentangRentang dalam SwitchRangkuman: Kisi Kalender3dictionary
Mendeklarasikan dictionaryPencarian OpsionalMemperbarui dictionaryMenelusuri dictionaryMengelompokkan NilaiRangkuman: Inventaris6Fungsi Orde Tinggi Bagian 2
compactMapflatMapsorted(by:)Membangun PipelineRingkasan: Papan PeringkatLatihan sendiri: Playground Swift