Viết một chương trình mà đi qua một chuỗi các ký tự không phải khoảng trắng (bạn có thể giả định rằng họ là chữ số 0
để 9
, nhưng không theo cách chúng được xử lý phụ thuộc vào điều này) và cho biết thêm không gian theo các quy tắc sau đây.
- Đặt mã thông báo hiện tại là chuỗi trống và mã thông báo được phát ra trước đó là một tập hợp trống.
- Lặp lại thông qua các ký tự của chuỗi. Đối với mỗi ký tự, trước tiên hãy thêm ký tự vào mã thông báo hiện tại. Sau đó, nếu mã thông báo hiện tại chưa có trong bộ mã thông báo được phát ra trước đó, hãy thêm mã thông báo hiện tại vào bộ đó và để mã thông báo hiện tại mới là chuỗi trống.
- Nếu khi bạn đến cuối chuỗi, mã thông báo hiện tại trống, hãy xuất mã thông báo được phát ra trước đó theo thứ tự phát xạ, được phân tách bằng ký tự khoảng trắng. Nếu không, xuất nguyên văn chuỗi gốc.
Đầu vào
Đầu vào của STDIN phải là một chuỗi các chữ số.
Đầu ra
Chương trình sẽ in kết quả như được chỉ định trong bước 3.
Mẫu
Đầu vào mẫu
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Đầu ra mẫu
2 0 1 5
10101010
4 8 1 5 16 2 3 42
1 0 10 101 01 010
3 4 5 51 2 1 37 24 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 95 0 28 841 971 69 39 937
Đây là mã golf, vì vậy các quy tắc CG tiêu chuẩn được áp dụng. Chương trình ngắn nhất trong byte thắng.
(Vui lòng yêu cầu bất kỳ sự làm rõ nào trong các bình luận. Tôi vẫn chưa quen với điều này. Cảm ơn!)
1 0 10
, lần lặp tiếp theo sẽ tìm thấy 1
(đã được sử dụng), sau đó tiến lên một lần tìm 10
(đã sử dụng), sau đó tiến lên một lần tìm 101
, cái mới và sẽ được 'thêm'. Sau đó, nó sẽ thêm một khoảng trắng và bạn sẽ có một không gian mới 0
, đã được sử dụng, nhưng ở đây ở cuối chuỗi. Do đó, đầu ra sẽ 1 0 10 101 0
không hợp lệ ( 0
được lặp lại) và sau đó tập lệnh phải chỉ xuất chuỗi đầu vào. Nó chỉ có thể làm 1010
nếu 101
đã được sử dụng.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
thể tách 10101010 để nó được in như hiện tại.
1
, sẽ lặp lại. Vì vậy, thay vào đó bạn di chuyển đúng một trong không gian 5, và sau đó bạn di chuyển một lần nữa trong bước 4, và bạn nhập lại bước 5 và tạo 101
.
4815162342
Tôi thấy những gì bạn đã làm ở đó, brotha .