Biorąc pod uwagę ciąg wejściowy, wypisz jeden lub więcej wariantów ciągu, tak aby:
- Żadna postać nie jest na swojej pierwotnej pozycji
- Żadna postać nie sąsiaduje z postacią, z którą pierwotnie sąsiadowała
Możesz założyć, że zawsze będzie to możliwe dla danego ciągu i będzie zawierać tylko pojedyncze litery alfabetu ( [a-z]
lub [A-Z]
jeśli wolisz)
Pamiętaj, że duplikaty tego samego znaku nie są uważane za unikalne.
Na przykład, biorąc pod uwagę dane wejściowe programming
, dane wyjściowe nie mogą zawierać znaku m
7 lub 8 i nie mogą zawierać znaku g
4 lub 11 (1 indeksowany)
Przykład:
Weź sznurek abcdef
Prawidłowe dane wyjściowe: daecfb
Jednak następujące elementy byłyby nieprawidłowe: fdbcae
jak w tym przykładzie c
i b
nadal są przyległe.
Adiacencja również się zawija, co oznacza, że nie możesz zrobić fdbeca
tak , jak f
i a
nadal sąsiadujesz.
Przypadki testowe:
Uwaga: nie są to jedyne prawidłowe dane wyjściowe dla danych wejściowych
Zapisane jako input -> output
:
helowi -> ioewhl
mayube -> euabmy
stephens -> nhseespt
aabcdeffghij -> dbfhjfigaeca
Punktacja:
To jest golf golfowy, więc wygrywa najmniej bajtów w każdym języku !
No character is adjacent to a character that it was originally adjacent to
. Czy zamówienie nie ma znaczenia dla sąsiedztwa? Więc wejście „abcd” nie może mieć nigdzie „ab”, a nigdzie też nie może mieć „ba”?