2
* @param {character[][]} board9
const getNeighbours = ([i, j], board) => {11
if (i > 0 && !visited[i - 1][j]) arr.push([i - 1, j]);12
if (j > 0 && !visited[i][j - 1]) arr.push([i, j - 1]);13
if (i + 1 < board.length && !visited[i + 1][j]) arr.push([i + 1, j]);14
if (j + 1 < board[i].length && !visited[i][j + 1]) arr.push([i, j + 1]);17
const dfs = ([i, j], board, word, index) => {18
if (word[index] !== board[i][j]) return false;19
if (word.length - 1 === index) return true;21
let neighbours = getNeighbours([i, j], board, word, index) || [];23
for (let k = 0; k < neighbours.length; k++) {24
let temp_result = dfs(neighbours[k], board, word, index + 1);25
if (temp_result === true) return true;27
visited[i][j] = false;31
var exist = function (board, word) {33
for (let i = 0; i < board.length; i++) {35
for (let j = 0; j < board[i].length; j++) {36
visited[i][j] = false;39
for (let i = 0; i < board.length; i++) {40
for (let j = 0; j < board[i].length; j++) {41
if (board[i][j] === word[0]) {42
let result = dfs([i, j], board, word, 0);43
if (result === true) return true;