Mô tả
Trạm thanh toán VnPay mỗi ngày ghi nhận hàng nghìn giao dịch, mỗi giao dịch kèm một mã định danh duy nhất. Tuy nhiên, do trùng lặp dữ liệu từ nhiều hệ thống nhật ký chấm công khác nhau, một số mã bị lặp ký tự khi gộp về máy chủ trung tâm.
Ví dụ, mã VNP20250115A khi đi qua ba luồng nhật ký bị ghép thành VNPVNP20250150115AA. Nhiệm vụ của bạn là viết một công cụ làm sạch: cho trước chuỗi mã gốc (có thể chứa chữ cái và chữ số), hãy loại bỏ mọi ký tự trùng lặp, chỉ giữ lại lần xuất hiện đầu tiên của từng ký tự, đồng thời bảo toàn đúng thứ tự xuất hiện ban đầu.
Đầu vào
- Một chuỗi
sgồm các ký tự chữ cái hoa, chữ cái thường và chữ số.
Đầu ra
- Trả về một chuỗi sau khi đã loại bỏ toàn bộ ký tự trùng lặp, giữ lại lần xuất hiện đầu tiên theo thứ tự ban đầu.
Ràng buộc
1 ≤ độ dài s ≤ 10^6- Mỗi ký tự trong
sthuộc tập hợp:a-z,A-Z,0-9.
Ví dụ
Ví dụ 1:
- Đầu vào:
"VNPVNP20250150115AA" - Đầu ra:
"VNP2051A"
Giải thích từng bước:
- Duyệt qua chuỗi, gặp
V→ chưa tồn tại → giữ. Kết quả:V - Gặp
N→ chưa tồn tại → giữ. Kết quả:VN - Gặp
P→ chưa tồn tại → giữ. Kết quả:VNP - Gặp
V→ đã có → bỏ qua. - Gặp
N→ đã có → bỏ qua. - Gặp
P→ đã có → bỏ qua. - Gặp
2→ chưa tồn tại → giữ. Kết quả:VNP2 - Gặp
0→ chưa tồn tại → giữ. Kết quả:VNP20 - Gặp
2→ đã có → bỏ qua. - Gặp
5→ chưa tồn tại → giữ. Kết quả: