Мурашник ходить по краях (а не гранях) кубика каркаса. Кожна вершина, з якою вона стикається, подає її виделкою, від якої відгалужуються два нові краї. Мураха вибирає , який спосіб перетворити - leftабо right. Ці напрямки відносно мурашника, який звернений до вершини і знаходиться поза куба. Ваша мета - з послідовності left/ rightвибору мурахи визначити, чи закінчується він у тому ж положенні, що і розпочався.
Наприклад, якщо мураха повертає ліворуч чотири рази ( left left left left), він пройшов квадрат проти годинникової стрілки і закінчився там же, де і почався. Але, якщо воно піде left left left left right, це закінчиться на іншому місці на кубі. Крім того, якщо він йде left right right right left, він закінчується на своєму початковому краю, але звернений до протилежної вершини, яка не вважається однаковою позицією.
Шлях мурашки може повторювати краї, включаючи край, з якого він починався, але важливо, де він закінчується після всієї послідовності.
Напишіть названу функцію, яка приймає мурашину послідовність поворотів і видає, чи повернувся мураха у вихідне положення після послідовності. Призначення безіменної функції змінної достатньо, щоб вона стала іменованою функцією.
(Редагувати: Якщо ваша мова не може створити названу функцію, вона може замість цього реалізувати функцію з входами та виходами через STDIN / друк або стек. Якщо це неможливо, зробіть фрагмент, у якому вхід і вихід зберігаються в змінні.)
Вхідні дані
Послідовність left/ rightрішень від довжини 0до 31включно, представлених у виборі формату. Це може бути рядок літер R/ L, список номерів 1/ -1або масив булевих. Нічого симпатичного, як те, що вони є назви методів або рядків, корисних для вашого коду.
Будь ласка, опублікуйте тестові приклади у своєму форматі, якщо він відрізняється від наведених нижче тестових випадків.
Вихідні дані
True/ False, 0/ 1, або аналоги вашої мови.
Критерії виграшу
Виграє найменше байт. Пам'ятайте, вам потрібно надати іменовану функцію. Ви можете мати код поза функцією, але і ці байти також враховуються. Ваша функція повинна вести себе правильно, якщо її викликають кілька разів.
Тестові справи
True випадки (один на рядок, другий - порожній список):
1 1 1 1
-1 -1 -1 -1
1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
-1 1 1 -1 -1 1 1 -1
1 1 1 -1 -1 -1 -1 1
1 -1 -1 1 -1 -1
1 1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1
-1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
False випадки (по одному на рядок):
1
1 1
1 1 1
-1 1
1 -1 -1 -1 1
1 -1 -1 1 1
-1 1 -1 1
1 1 1 1 -1
-1 -1 1 -1 1 -1 -1 1
1 -1 1 1 1 1 -1 -1 -1 1 1 -1 -1 -1
Ось такі ж тестові випадки з L's і R' s.
True випадки:
RRRR
LLLL
RLRLRL
RRLLRRLL
LRRLLRRL
RRRLLLLR
RLLRLL
RRRRLLLLRLLRLL
LLLRLLRRLRLRRRRRRRRRRRRRRRRR
False випадки:
R
RR
RRR
LR
RLLLR
RLLRR
LRLR
RRRRL
LLRLRLLR
RLRRRRLLLRRLLL
Додатковий виклик з кредиту
Те саме, але з додекаедром, а не кубом. Дивіться Полювання на Wumpus за ідеями.