Щоразу, коли ви робите рух по кубі Рубіка, відбувається зворотний хід, який скасовує перший хід. Через це кожен алгоритм (набір рухів) має зворотний алгоритм, який скасовує перший алгоритм.
Мета цього завдання - знайти зворотний бік заданого алгоритму.
Специфікація:
Вхід складається з масиву окремих рухів. Кожен хід - це рядок довжиною 1 або 2. Звичайно, ви можете використовувати будь-який формат введення, який має найбільш сенс для вашої мови. Кожен хід складається зі структури X
або X'
або X2
, де X
це прописна або рядкова буква.
Щоб повернути назад X
, просто замініть його X'
. Так само X'
стає X
. X2
з іншого боку, не змінюється.
Щоб створити вихід, оберніть кожен хід, а потім поверніть масив.
Приклади (рядки, розділені пробілами):
R
=> R'
D U'
=> U D'
S T A C K
=> K' C' A' T' S'
A2 B2
=> B2 A2
Оцінка:
Це код-гольф, тому виграє найменша кількість байтів. Стандартні лазівки заборонені.
X3
або X1
було б приємним доповненням до виклику.
D2R2
бути тестовим випадком ...
R2
->R2'
чиB
->B3
?