Khử trùng lặp nhưng giữ nguyên thứ tự xuất hiện
set xoá trùng lặp trong một nốt nhạc, nhưng nó không hứa gì về thứ tự. Với nhiều bài
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, python-lists, python-sets.
Nội dung đề bài
Mô tả bài toán
set xoá trùng lặp trong một nốt nhạc, nhưng nó không hứa gì về thứ tự. Với nhiều bài toán thực tế, thứ tự xuất hiện đầu tiên lại chính là thứ tự cần giữ: nhật ký truy cập, danh sách khách hàng theo thời điểm phát sinh, các bước trong một quy trình. Bài này luyện cách dùng set chỉ để tra cứu nhanh, còn thứ tự do danh sách kết quả quyết định.
Yêu cầu
Viết hàm unique_in_order(items) trả về danh sách các giá trị khác nhau của items, mỗi giá trị xuất hiện đúng một lần, theo thứ tự xuất hiện đầu tiên của nó trong đầu vào.
Quy ước nộp bài
Nộp hàm unique_in_order trong solution.py. Hệ thống gọi hàm trực tiếp bằng tên đối số items rồi so giá trị trả về theo đúng thứ tự; không đọc dữ liệu từ stdin và không in ra stdout.
Input
- items: danh sách các giá trị băm được, ở đây là số nguyên hoặc chuỗi.
Output
Danh sách mới, không sửa items, chứa mỗi giá trị khác nhau đúng một lần theo thứ tự xuất hiện lần đầu.
Ràng buộc
- Số phần tử từ 0 đến 50; giá trị có thể trùng nhau nhiều lần.
- Thứ tự kết quả phải theo lần xuất hiện đầu tiên, không theo thứ tự giá trị và không phụ
thuộc vào cách set sắp xếp nội bộ.
- Không được sửa danh sách đầu vào.
- Thời gian cần đạt O(n); dùng set để tra cứu "đã gặp hay chưa" trong O(1).
Ví dụ 1
Input
unique_in_order(items=[3, 1, 3, 2, 1])
Output
[3, 1, 2]
Ví dụ 2
Input
unique_in_order(items=[1, 1, 1])
Output
[1]
Giải thích
Với items = [3, 1, 3, 2, 1], giá trị 3 xuất hiện đầu tiên ở vị trí 0, 1 ở vị trí 1, 2 ở vị trí 3, nên hàm trả về [3, 1, 2]. Chú ý 2 không được xếp trước 3 dù nhỏ hơn.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
