Mô tả
Anh Long chịu trách nhiệm theo dõi quy trình build (biên dịch và đóng gói) cho ứng dụng đa dịch vụ của đội ngũ phát triển. Mỗi lần build chạy xong, hệ thống xuất ra một bản ghi dạng văn bản (log build) gồm nhiều dòng, mỗi dòng mang dạng @<tien-to>#<so-thu-tu> — trong đó tien-to là tên module và so-thu-tu là số nguyên dương do bộ đếm trong hệ thống sinh ra.
Ví dụ: dòng @auth#3 nghĩa là module auth xuất hiện lần thứ 3, dòng @db#1 nghĩa là module db xuất hiện lần đầu tiên.
Anh Long cần thống kê nhanh xem các module xuất hiện lần đầu tiên theo đúng thứ tự trong bản ghi. Nhiệm vụ của bạn là: duyệt qua từng dòng log theo thứ tự từ trên xuống dưới, trích ra tien-to của mỗi dòng, và chỉ giữ lại những tiền tố chưa từng xuất hiện trước đó. Những tiền tố đã gặp rồi thì bỏ qua.
Đầu vào
- Một chuỗi
logchứa nhiều dòng, mỗi dòng có dạng@<tien-to>#<so-thu-tu>. - Các dòng cách nhau bởi ký tự xuống dòng
\n. tien-tochỉ gồm chữ cái tiếng Anh in thường (a–z), độ dài từ 1 đến 20 ký tự.so-thu-tulà số nguyên dương (1 đến 10^9), nhưng bạn không cần xử lý giá trị này.- Số dòng trong
logtừ 0 đến 10^5 dòng.
Lưu ý: chuỗi log có thể rỗng (không có dòng nào).
Đầu ra
- Trả về một mảng các chuỗi: danh sách tiền tố module duy nhất theo thứ tự xuất hiện đầu tiên.
Ràng buộc
- 0 ≤ số dòng trong
log≤ 10^5. - 1 ≤ độ dài mỗi
tien-to≤ 20. - 1 ≤
so-thu-tu≤ 10^9. - Tổng chiều dài chuỗi
log≤ 10^6 ký tự.
Ví dụ
Ví dụ 1:
- Đầu vào:
"@auth#1\n@db#1\n@auth#5\n@api#1\n@db#3" - Đầu ra:
["auth", "db", "api"] - Giải thích: Duyệt từng dòng từ trên xuống:
- Dòng 1
@auth#1→ tiền tốauth, chưa gặp → giữ lại. - Dòng 2
@db#1→ tiền tốdb, chưa gặp → giữ lại. - Dòng 3
@auth#5→ tiền tốauth, đã gặp ở dòng 1 → bỏ qua. - Dòng 4
@api#1→ tiền tốapi, chưa gặp → giữ lại. - Dòng 5
@db#3→ tiền tốdb, đã gặp ở dòng 2 → bỏ qua. - Kết quả:
["auth", "db", "api"].
- Dòng 1
Ví dụ 2:
- Đầu vào:
"@logger#7" - Đầu ra:
["logger"] - Giải thích: Chỉ có một dòng, tiền tố
loggerchưa từng xuất hiện nên được giữ lại.
Ví dụ 3:
- Đầu vào:
"" - Đầu ra:
[] - Giải thích: Chuỗi rỗng, không có dòng nào, kết quả là mảng rỗng.