Napisz program, który przechodzi przez ciąg znaków non-białych (można założyć, że są cyfry 0
do 9
, ale nie w sposób, w jaki mają być przetwarzane zależy od tego) i dodaje spacje zgodnie z następującymi zasadami.
- Niech bieżący token będzie pustym ciągiem, a poprzednio emitowane tokeny będą pustym zestawem.
- Iteruj po znakach łańcucha. Dla każdej postaci najpierw dodaj postać do bieżącego tokena. Następnie, jeśli bieżący token nie znajduje się już w zestawie wcześniej emitowanych tokenów, dodaj bieżący token do tego zestawu i niech nowy bieżący token będzie pustym ciągiem.
- Jeśli po osiągnięciu końca łańcucha bieżący token jest pusty, wyślij poprzednio wyemitowane tokeny w kolejności emisji, oddzielając je spacją. W przeciwnym razie wypisz oryginalny ciąg znaków dosłownie.
Wkład
Dane wejściowe do STDIN powinny być ciągiem cyfr.
Wydajność
Program powinien wydrukować wynik, jak określono w kroku 3.
Próbki
Przykładowe dane wejściowe
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Przykładowe wyniki
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
To jest kod golfowy, więc obowiązują standardowe zasady CG. Najkrótszy program w bajtach wygrywa.
(Poproś o wyjaśnienia w komentarzach. Nadal jestem nowy. Dzięki!)
1 0 10
, pojawi się następna iteracja 1
(już używana), następnie przejdź do jednej 10
(już używana), a następnie przejdź do jednej 101
, która jest nowa i zostanie dodana. Dodałoby to spację i dostałbyś nowy 0
, który był już używany, ale znajduje się tutaj na końcu łańcucha. Dlatego wynik byłby 1 0 10 101 0
niepoprawny ( 0
jest powtarzany), a skrypt musi po prostu wyprowadzić ciąg wejściowy. Mógłby to zrobić tylko, 1010
jeśli 101
był już używany.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
nie można podzielić, więc jest drukowany w niezmienionej postaci.
1
, co będzie powtórzeniem. Zamiast tego poruszasz się w prawo na polu 5, a następnie ponownie w prawo w kroku 4, a następnie ponownie wchodzisz do kroku 5 i tworzysz 101
.
4815162342
Widzę, co tam zrobiłeś, bracie .