Ctrl K

Кольцо из одинаковых букв

Средняя
Дано поле board размером m × n, в каждой клетке — строчная латинская буква. Из клетки можно шагнуть в соседнюю по стороне (вверх, вниз, влево, вправо), только если в ней та же буква. Кольцо — это путь из 4 или более шагов, который начинается и заканчивается в одной и той же клетке, причём нельзя сразу возвращаться в клетку, из которой только что пришли (путь «туда-обратно» кольцом не считается). Верните True, если на поле есть хотя бы одно кольцо из одинаковых букв, иначе False.
Пример 1
board=[['x', 'x', 'y'], ['x', 'x', 'y'], ['z', 'y', 'y']] → True

Четыре буквы x в левом верхнем углу образуют квадрат 2×2 — это кольцо длины 4.

Пример 2
board=[['a', 'b', 'a'], ['a', 'a', 'a'], ['b', 'a', 'b']] → False

Клетки с a связаны, но ветвятся как дерево: вернуться в стартовую клетку, не шагая назад, нельзя.

Пример 3
board=[['p', 'p', 'p'], ['p', 'q', 'p'], ['p', 'p', 'p']] → True

Буквы p идут кольцом вокруг центральной q.

Ограничения
  • 1 ≤ m, n ≤ 500
  • Все строки board одной длины
  • board[i][j] — строчная латинская буква
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяСамый большой лесной участок СредняяПоле, разрезанное чертами СредняяСуша без выхода к краю Средняя
загружаем Python…
Вход
board=[['x', 'x', 'y'], ['x', 'x', 'y'], ['z', 'y', 'y']]
Ожидается
True

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