Wyzwanie
Napisz funkcję lub program, który akceptuje wiersz danych wejściowych, wykonuje bardzo specyficzne i dziwnie znajome losowanie swoich znaków i wyświetla wynik.
Wymagane tasowanie można opisać za pomocą następującego algorytmu:
- Oznacz każdy znak na wejściu indeksem 1.
- Wpisz znak numer 1 jako wynik.
- Zaczynając od znaku 2, zapisz co drugi znak na wyjściu w kolejności, z wyjątkiem samego znaku 2. Innymi słowy, wypisz znaki 4, 6, 8, 10 itd. Jako dane wyjściowe.
- Zaczynając od następnego znaku n, który nie został jeszcze zapisany jako wynik, zapisz co n-ty znak na wyjściu, wyłączając znak n sam i wykluczając jakikolwiek inny znak (etykietą numeryczną), który mógłeś już zapisać na wyjściu.
- Powtórz krok 4, o ile nadal dodaje nowe znaki do wyniku.
- Wpisz pozostałe znaki do wydrukowania w kolejności.
Przykład
- Oznacz znaki.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 OLDDOCYAK 'SBEAUTYCORNER
2. Wpisz pierwszy znak do wyjścia:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27OLDDOCYAK 'SBEAUTYCORNER O
3. Napisz co drugi znak zaczynając od 2, z wyjątkiem 2.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNER O OA 'EUYCRE
4. Następnym nie zapisanym jeszcze znakiem jest znak 3; napisz co 3 znak, zaczynając od 3, ale wyłączając znak 3 i każdy znak już napisany.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA „EUYCRE YB R
5. Powtórz krok 4, używając następnego znaku, znaku 5.
4. Następnym jeszcze nie zapisanym znakiem jest znak 5; napisz co 5 znak, zaczynając od 5, ale wyłączając sam znak 5 i każdy znak już napisany. (To tylko postać 25).
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA „EUYCREYB R N
5. Następna postać to 7; ale 14, 21 zostało już napisanych, więc nie powiemy więcej znaków, jeśli powtórzymy krok 4. Zatem skończyliśmy z 5.
6. Wypisz pozostałe znaki w kolejności.
12 3456789101112131415161718192021222324252627OLD DOCYAK'SBEAUTYCORNEROOA „EUYCREYB RN LDDCKSATO
Zasady
Wejście i wyjście może odbywać się za pośrednictwem standardowego wejścia / wyjścia standardowego, ciągów znaków lub tablic znaków.
Jeśli wczytujesz standardowe wejście, możesz wygodnie założyć, że jest nowy znak końca lub że całe wejście zawiera wiersz. Znaki nowej linii nie uczestniczą w tasowaniu.
Podobnie, dla twojej wygody, twój wynik może albo mieć końcowy znak nowej linii, albo nie.
Standardowe luki są niedozwolone.
To zawody w golfa kodowego. Najmniejszy kod w bajtach wygrywa.
Przypadki testowe
123456789ABCDEF -> 1468ACE9F2357BD
OLD DOC YAK'S BEAUTY CORNER -> O O A' EUYCREYB RNLDDCKSATO
Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator.
->
Bebxsuea20h oet ovnetlpoesice htuei-adsgaln httecle satal eehn prtre 0ncce ha nng aiuapootnt ihyon atallu o s 6z oi ehwstsnbilt lr clee.