Menu
CoddyTech

Ôn tập: hàng tồn kho

Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 17 trên 56.

challenge icon

Thử thách

Trung bình

Bạn đang theo dõi hàng tồn kho của cửa hàng. Đọc một dòng đầu vào: danh sách các thao tác, phân tách bằng dấu phẩy, áp dụng cho [String: Int] ban đầu rỗng có tên stock. Mỗi thao tác thuộc một trong các dạng sau:

  • in:<item>:<qty> cộng số lượng vào mặt hàng (dùng mẫu chỉ mục mặc định)
  • out:<item>:<qty> trừ số lượng. Nếu số lượng còn lại là 0 hoặc nhỏ hơn, hãy xóa khóa đó hoàn toàn.

Sau khi áp dụng tất cả thao tác, hãy in ra:

  1. Mỗi mặt hàng còn lại trên một dòng, sắp xếp theo thứ tự bảng chữ cái, theo định dạng <item>: <qty>
  2. Total units: <n> tính tổng tất cả giá trị còn lại

Với đầu vào in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, đầu ra là:

apple: 6
Total units: 6

Tự làm thử

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

// TODO: phân tích từng op theo dạng kind:item:qty; in thì cộng, out thì trừ;
// xóa các khóa có qty giảm xuống <= 0; in các dòng đã sắp xếp và tổng cộng

Tất cả bài học trong Logic và luồng thực thi

Tự luyện tập: Playground Swift