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 X
ou 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
. X2
por 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.
X3
ou X1
teria sido uma boa adição ao desafio.
D2R2
como um caso de teste ...
R2
->R2'
ouB
->B3
permitido?