Курьер Яндекс Еды несёт заказ по этажу бизнес-центра. План — список строк grid одинаковой длины: S — вход, E — офис клиента, # — стена, . — проход, a–d — посты охраны, где выдают пропуск своего цвета, A–D — турникеты, которые пропускают только с пропуском того же цвета.
За шаг курьер переходит в соседнюю клетку по стороне. Пропуск, взятый на посту, остаётся у курьера до конца. Верните наименьшее число шагов от S до E или -1, если до клиента не дойти.
В работе: Оценка времени «от двери до двери» в больших БЦ, где курьер теряет 5–10 минут на поиск нужного поста охраны.
Пример 1
grid = ["S.A.E", ".####", "a...."]
8
Сначала вниз за пропуском a (2 шага), обратно к S (2), затем через турникет A к E (4) — итого 8.
Пример 2
grid = ["S#E"]
-1
Стена — пути нет.
Ограничения
- 1 ≤ число строк, длина строки ≤ 250
- ровно одна
S, хотя бы однаE - пропуски только
a–d, турникетыA–D - Лимит — 3 с на тест (3000 мс).
print() и console.log() уходят в консоль.
def courier_steps(grid):
Источник: наша задача на данных Яндекса. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.