Chaque fois que vous effectuez un mouvement sur un Rubik's Cube, il y a un mouvement inverse qui annule le premier mouvement. Pour cette raison, chaque algorithme (ensemble de mouvements) a un algorithme inverse qui annule le premier algorithme.
Le but de ce défi est de trouver l'inverse d'un algorithme donné.
Spécification:
L'entrée se compose d'un tableau de mouvements individuels. Chaque mouvement est une chaîne de longueur 1 ou 2. Bien sûr, vous pouvez utiliser le format d'entrée le plus logique dans votre langue. Chaque mouvement se compose de la structure Xou X'ou X2, où Xest une lettre majuscule ou minuscule.
Pour inverser X, remplacez-le simplement par X'. De même, X'devient X. X2d'autre part ne change pas.
Pour créer la sortie, inversez chaque déplacement, puis inversez le tableau.
Exemples (chaînes séparées par des espaces):
R => R'
D U' => U D'
S T A C K => K' C' A' T' S'
A2 B2 => B2 A2
Notation:
Il s'agit de code-golf, donc le moins d'octets est gagnant. Les échappatoires standard ne sont pas autorisées.
X3ou X1aurait été un bon ajout au défi.
D2R2comme cas de test ...
R2->R2'ouB->B3permis?