Всякий раз, когда вы делаете ход на кубике Рубика, есть обратный ход, который отменяет первый ход. Из-за этого каждый алгоритм (набор ходов) имеет обратный алгоритм, который отменяет первый алгоритм.
Цель этой задачи - найти обратную сторону заданного алгоритма.
Спецификация:
Вход состоит из массива отдельных ходов. Каждый шаг представляет собой строку длиной 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
разрешено?