Район задан сеткой city из строк одинаковой длины: . — улица, # — здание, A — банкомат Сбера. За шаг можно пройти в соседнюю по стороне клетку, через здания нельзя.
Верните таблицу того же размера: для каждой клетки — наименьшее число шагов до любого банкомата. Для зданий и клеток, откуда банкомат недостижим, поставьте −1. У банкомата — 0.
В работе: Слой «до банкомата больше 10 минут пешком» на карте покрытия: по нему решают, где ставить новый.
Пример 1
Ввод
city = ["A..#", ".#..", "...A"]
Вывод
[[0, 1, 2, -1], [1, -1, 2, 1], [2, 2, 1, 0]]
Правый верхний угол — здание, −1. Клетка (1, 3) в одном шаге от нижнего банкомата.
Пример 2
Ввод
city = [".#A"]
Вывод
[[-1, -1, 0]]
Левую клетку отрезает здание — −1.
Ограничения
- 1 ≤ h, w ≤ 500
- h·w ≤ 2,5·10⁵
- Лимит — 2 с на тест (2000 мс).
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def atm_steps(city):
Источник: наша задача на данных Сбера. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.