Giới thiệu
Theo định nghĩa, định danh duy nhất nên là duy nhất. Có nhiều định danh giống nhau khiến một người lấy dữ liệu không mong muốn. Nhưng với dữ liệu đến đồng thời từ nhiều nguồn, có thể khó đảm bảo tính duy nhất. Viết một hàm duy nhất một danh sách các định danh.
Đây có thể là câu đố tồi tệ nhất tôi đã viết, nhưng bạn có ý tưởng.
Yêu cầu
Đưa ra một danh sách các số nguyên dương hoặc nhiều hơn, áp dụng các quy tắc sau cho mỗi số từ đầu đến cuối:
- Nếu số này là số đầu tiên của loại này, hãy giữ nó.
- Nếu trước đó đã gặp phải số này, hãy thay thế nó bằng số nguyên dương thấp nhất không tìm thấy ở bất kỳ đâu trong toàn bộ danh sách đầu vào hoặc bất kỳ đầu ra hiện có nào.
Đối với giải pháp:
- Giải pháp có thể là một chương trình hoặc một chức năng.
- Đầu vào có thể là một chuỗi, một mảng, được truyền dưới dạng đối số hoặc đầu vào bàn phím.
- Đầu ra có thể là một chuỗi, một mảng hoặc được in ra màn hình.
- Tất cả các số trong danh sách đầu ra là khác biệt.
Giả định
- Danh sách đầu vào sạch sẽ. Nó chỉ chứa số nguyên dương.
- Một số nguyên dương có phạm vi từ 1 đến 2 31 -1.
- Ít hơn 256 MB bộ nhớ khả dụng cho các biến của chương trình của bạn. (Về cơ bản, không có mảng 2.147.483.648 phần tử nào được phép.)
Các trường hợp thử nghiệm
Input: empty
Output: empty
Input: 5
Output: 5
Input: 1, 4, 2, 5, 3, 6
Output: 1, 4, 2, 5, 3, 6
Input: 3, 3, 3, 3, 3, 3
Output: 3, 1, 2, 4, 5, 6
Input: 6, 6, 4, 4, 2, 2
Output: 6, 1, 4, 3, 2, 5
Input: 2147483647, 2, 2147483647, 2
Output: 2147483647, 2, 1, 3
Chấm điểm
Chỉ là một mã golf đơn giản. Số byte thấp nhất vào thời điểm này tuần tới sẽ thắng.
6, 6, ...
cho 6, 1, ...
?
6, 6, 4, 4, 2, 2
Trường hợp thử nghiệm xác nhận cách giải thích của Adám: đầu ra dự kiến là 6, 1, 4, 3, 2, 5
, và không 6, 1, 4, 2, 3, 5
.
6, 6, 1, 2, 3, 4, 5
→6, 7, 1, 2, 3, 4, 5