Sempre que você faz um movimento no Cubo de Rubik, há um movimento inverso que desfaz o primeiro movimento. Por esse motivo, todo algoritmo (conjunto de movimentos) possui um algoritmo reverso que desfaz o primeiro algoritmo.
O objetivo deste desafio é encontrar o inverso de um determinado algoritmo.
Especificação:
A entrada consiste em uma matriz de movimentos individuais. Cada movimento é uma sequência de comprimento 1 ou 2. É claro que você pode usar qualquer formato de entrada que faça mais sentido no seu idioma. Cada movimento consiste na estrutura Xou X'ou X2, onde Xé uma letra maiúscula ou minúscula.
Para reverter X, basta substituí-lo por X'. Da mesma forma, X'torna-se X. X2por outro lado, não é alterado.
Para criar a saída, inverta cada movimento e, em seguida, inverta a matriz.
Exemplos (cadeias separadas por espaços):
R => R'
D U' => U D'
S T A C K => K' C' A' T' S'
A2 B2 => B2 A2
Pontuação:
Isso é código-golfe, então a menor quantidade de bytes ganha. Não são permitidas brechas padrão.
X3ou X1teria sido uma boa adição ao desafio.
D2R2como um caso de teste ...
R2->R2'ouB->B3permitido?