Или, возможно, это не настоящий лабиринт, но все же.
Правила:
Ввод является строкой две строки, состоящей из
*,1,xиX. Эта нить - лабиринт, через который нужно пройти. Строки имеют одинаковую длину .Вы можете взять ввод в виде строки с
,(запятой) или любым удобным разделителем между этими двумя строками. Или вы можете взять обе строки в качестве отдельных аргументов вашей функции.Выход - это количество шагов, которые вы должны предпринять, чтобы выйти из строки (последний шаг - это шаг, который выводит вас из строки).
Вы начинаете в верхнем левом углу (верхняя линия), перед первым символом.
Для каждого шага вы двигаетесь вперед на один символ (от n-й до (n + 1) -й позиции ). Затем, в зависимости от характера, на которого вы наступаете, результат будет другим. Вот что делает каждый символ:
*- ничего. Вы просто наступаете на это нормально.x- как только вы наступите на него, переключите линию, но оставайтесь на том же горизонтальном расстоянии от начала. Например, вы вышли на третью позицию более высокой строки и встретили здесь нижний регистрx. Затем вы сразу переходите на нижнюю линию, но снова на третью позицию.X- переключить линию и перейти к следующей позиции. Пример там тот же, но вы также переходите с третьей на четвертую позицию (таким образом, вы находитесь на второй строке в четвертой позиции).1- просто двигаться вперед еще на одну позицию.
Как только каждый персонаж выполняет свою работу, он заменяется пробелом и больше не «работает».
Примеры следуют.
Вход :
x *Как сказано выше, вы начинаете перед первым символом первой строки. Первый шаг перемещает вас на букву,
xи эта буква переключает вас на вторую строку. Букваxбольше не функционируетx, но заменена на*. Это будет более актуально в последних примерах. Вы сейчас на звёздочке в нижней строке, и она ничего не сделала для вас.Второй шаг продвигает вас вперед и вы выходите из струны, так что лабиринт завершен, и он занял 2 шага.
Выход
2.Вход :
xX* x1*1-й шаг : вы двигаетесь дальше
x, что перемещает вас поxнижней линии. Здесь следует правило, согласно которому используемый символ заменяется звездочкой. Затем вы возвращаетесь на первую строку, но ее большеxнет, поскольку она была использована и стала звездочкой. Таким образом, вы безопасно перемещаетесь по этой звездочке, и шаг завершен (теперь вы находитесь на первой позиции первой строки).2-й шаг : вы двигаетесь дальше
X, он подталкивает вас к нижней линии, а затем подталкивает вас вперед. Теперь вы находитесь на третьей позиции второй строки (звездочка), никогда не посещая вторую позицию (которая содержит1).3-й шаг : вы двигаетесь вперед, выходя из строки.
Выход :
3.
Тестовые случаи:
Входные данные:
*1* xxxВыход:
3. (потому что1заставляет вас прыгать на третьей позиции). Там вы никогда не посещаете вторую строку, но это обязательная часть ввода.Входные данные:
*X*1*x x*1xx*Выход:
4.Входные данные:
1x1x ***XВыход:
3.Входные данные:
1*x1xxx1*x x*x1*11X1xВыход:
6.Входные данные:
xXXXxxx111* **xxx11*xxxВыход:
6.
"\n\n"это строка из двух строк ...
1, когда вы начинаете до 1-й строки, затем вы продвигаетесь вперед на один шаг, а затем вы заканчиваете лабиринт ...