Ctrl K

След с одним изгибом

Сложная
Дано прямоугольное поле board, в каждой клетке которого записано 0, 1 или 2. Назовём *следом* цепочку клеток, в которой: - первая клетка содержит 1, а дальше значения идут так: 2, 0, 2, 0, …; - каждая следующая клетка — сосед предыдущей по диагонали (на одну строку и один столбец в сторону); - след начинается в одном из четырёх диагональных направлений и может не больше одного раза повернуть на 90° по часовой стрелке, после чего идёт прямо в новом направлении. Верните длину самого длинного следа в клетках. Если на поле нет ни одной единицы, верните 0.
Пример 1
board=[[1, 0, 0], [0, 2, 0], [0, 0, 0], [0, 2, 0], [0, 0, 0]] → 5

Из 1 в (0,0) идём вниз-вправо: 2 в (1,1), 0 в (2,2). Там поворачиваем по часовой стрелке и идём вниз-влево: 2 в (3,1), 0 в (4,0). Всего 5 клеток.

Пример 2
board=[[2, 1], [0, 2]] → 1

Единственный диагональный сосед единицы — клетка (1,0), но в ней 0, а после 1 должна идти 2. След состоит из одной клетки.

Пример 3
board=[[0, 2], [2, 0]] → 0

Единиц нет, начать след негде.

Ограничения
  • 1 ≤ len(board), len(board[0]) ≤ 500
  • Все строки одной длины
  • board[i][j] — 0, 1 или 2
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный подъём по карте СложнаяПятнашки на шесть клеток СложнаяРазрезать торт с ягодами СложнаяМышь, кот и сыр СложнаяПрогулки только в гору Сложная
загружаем Python…
Вход
board=[[1, 0, 0], [0, 2, 0], [0, 0, 0], [0, 2, 0], [0, 0, 0]]
Ожидается
5

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 79 тестов на сервере, включая скрытые.