Ctrl K

Слово на сетке букв

Средняя
Дана сетка букв grid размером m × n и слово word. Можно ли «прочертить» это слово по сетке? Слово читается по цепочке клеток: каждая следующая клетка — соседняя с предыдущей по горизонтали или вертикали, и буквы в клетках цепочки по порядку образуют word. Одну и ту же клетку в цепочке использовать дважды нельзя. Регистр букв важен: a и A — разные буквы. Верните true, если такая цепочка есть, и false иначе. Как ускорить поиск, если сетка большая?
Пример 1
grid=[["C", "A", "T"], ["O", "R", "S"], ["D", "E", "N"]], word="CARE" → True

C (0,0) → A (0,1) → R (1,1) → E (2,1): каждый шаг — к соседней клетке по горизонтали или вертикали.

Пример 2
grid=[["C", "A", "T"], ["O", "R", "S"], ["D", "E", "N"]], word="CAN" → False

C → A получается, но буква N стоит в дальнем углу и не соседствует с A. Ответ false.

Пример 3
grid=[["a", "b"], ["b", "a"]], word="abba" → False

С какой a ни начни, следующая b найдётся, но вокруг неё — только клетки с a, а вторая b стоит по диагонали. Ответ false.

Ограничения
  • 1 ≤ m, n ≤ 6
  • 1 ≤ len(word) ≤ 15
  • grid и word состоят из строчных и заглавных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлова в буквенной сетке СложнаяШарик и лунка СложнаяОсушение замкнутых прудов СредняяУчастки суши на карте СредняяЦепочки отношений Средняя
загружаем Python…
Вход
grid=[["C", "A", "T"], ["O", "R", "S"], ["D", "E", "N"]], word="CARE"
Ожидается
True

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