Menu
CoddyTech

Word Search

Дана сетка букв board, представленная в виде списка строк, где board[r][c] — это буква в строке r, столбце c, а также строка word.

Верните true, если можно проследить word на сетке: начните с любой ячейки и на каждом шаге переходите в ячейку непосредственно выше, ниже, слева или справа от текущей, чтобы посещённые ячейки соответствовали буквам word по порядку. При таком обходе нельзя использовать одну и ту же ячейку дважды. В противном случае верните false. Регистр букв учитывается, поэтому a и A — разные символы.

Функция

exist(board: string-array, word: string) → boolean
boardstring-array
сетка, одна строка букв на каждую строку
wordstring
слово, которое нужно обвести
Возвращаетboolean
можно ли проследить слово по соседним ячейкам, используя каждую не более одного раза

Ограничения

  • 1 ≤ board.length ≤ 6
  • 1 ≤ board[i].length ≤ 6, и все строки имеют одинаковую длину.
  • 1 ≤ word.length ≤ 20
  • board и word содержат только английские буквы в верхнем и нижнем регистре.

Примеры

Ввод
board = ["STAR", "POOL", "ENDS"]word = "STOOLS"
Вывод
true
Пояснение
Начни с S в строке 0, столбце 0, затем иди вправо к T, вниз к O, вправо ко второй O, вправо к L и вниз к S в строке 2, столбце 3. Это шесть разных ячеек, каждая из которых соседствует с предыдущей.

lock icon+23 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Вместо ответа «да» или «нет» можешь посчитать, сколько разных вариантов провести word содержит доска?

Сбросить код
def exist(board, word):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

board = ["STAR", "POOL", "ENDS"]
word = "STOOLS"

Ожидается

true