Étant donné une chaîne en entrée, sortez une ou plusieurs variantes de la chaîne de sorte que:
- Aucun personnage n'est dans sa position d'origine
- Aucun personnage n'est adjacent à un personnage auquel il était à l'origine adjacent
Vous pouvez supposer que cela sera toujours possible pour la chaîne donnée et ne contiendra que des caractères alphabétiques à casse unique ( [a-z]ou [A-Z]si vous préférez)
Notez que les doublons du même caractère ne sont pas considérés comme uniques.
Par exemple, étant donné l'entrée programming, la sortie ne peut pas contenir un mau 7ème ou 8ème caractère, et ne peut pas contenir un gau 4ème ou 11ème caractère (1 indexé)
Exemple:
Prends la ficelle abcdef
Ce qui suit serait une sortie valide: daecfb
Cependant, les éléments suivants ne seraient pas valides: fdbcaecomme dans cet exemple cet bsont toujours adjacents.
L'adjacence s'enroule également, ce qui signifie que vous ne pouvez pas faire fdbecacomme fet que vous aêtes toujours adjacent.
Testcases:
Notez que ce ne sont pas les seules sorties valides pour les entrées données
Écrit comme input -> output:
helowi -> ioewhl
mayube -> euabmy
stephens -> nhseespt
aabcdeffghij -> dbfhjfigaeca
Notation:
Il s'agit de code-golf, donc le moins d'octets dans chaque langue gagne!
No character is adjacent to a character that it was originally adjacent to. L'ordre n'est-il pas important pour la contiguïté? Donc l'entrée "abcd" ne peut avoir "ab" nulle part, et ne peut avoir "ba" nulle part non plus?