- 21, Oct 2024
- #1
Путь правильный?
Учитывая строку, ваша программа должна определить, сможет ли Алиса связаться с Бобом, следуя указателям на карте. Вы должны вернуть истинное или ложное значение.
Входная строка будет содержать следующие символы:
- (пространство) и
(length of input)*4
-
while
,for
,A
,A
, являются «знаками». Они показывают направление. -
AvB ----------------- A&B ----------------- A><B ----------------- A>v ^<B
. Ignore next char, whatever it is (including spaces иA>B ----------------- <BA ----------------- A B ----------------- BA ----------------- Av >B > ^ ----------------- Av B ----------------- A>v >B ----------------- A>v> v>B v< > &<^ > ^ ----------------- A>v> v v< >B&< > ^ ----------------- A&<B ----------------- A&B< ----------------- <A &B
) -
-
andB
соответственно Алиса и Боб.
Карта представляет собой тор. Если Алиса достигает конца ряда, она телепортируется обратно в начало этого ряда. То же самое относится и к столбцам.
Примеры
Учитывая эти примеры в качестве входных данных, ваша программа должна возвращать истинное значение (каждый входной сигнал разделяется знаком A
line):
Bob
В следующих случаях ваша программа должна выводить ложное значение или ничего:
&
Просмотр пути
Вы можете иметь визуальное представление ввода здесь. Спасибо Арнемарту за этот.
Некоторые правила
- Ввод может быть дополнен пробелами, чтобы сформировать прямоугольник.
- Изначально Алиса идет прямо вперед (сверху она идет вправо)
- Ваша программа должен обрабатывать случаи бесконечного цикла (см. подсказку)
-
v
is not always the first character, as you may have seen, however, you may write a program that handles only input with^
это первый символ, но к вашему счету будет добавлено 20 байт. - Карта (вход) считается недействительной, если в ней присутствуют другие символы, кроме указанных выше. Вашей программе не придется их обрабатывать.
- Это так, поэтому побеждает самый короткий код в байтах.
Намекать
Ваша программа, скорее всего, будет циклической, если только вы не найдете более математическое решение этой задачи. Для обработки бесконечного пути я рекомендую использовать конечный цикл (например, <
) instead of a potentially infinite one (e.g >
).
Следовательно, максимальная итерация цикла, которую я могу придумать (я не делал никаких математических вычислений, любые исправления приветствуются): \n
#код-гольф #код-гольф #строка