var exist = function (board, word) { if (!board.length) return false if (!word.length) return true let row = board[0].length, col = board.length for (let i = 0; i < row; i++) { for (let j = 0; j < col; j++) { const res = backtrack(i, j, 0) if (res) return res } } return false function backtrack(i, j, cur) { if(i >= row || i < 0) return false if(j >= col || j < 0) return false const curStr = board[j][i] if(curStr !== word[cur]) return false if(cur === word.length - 1) return true board[j][i] = null const res = backtrack(i + 1, j, cur + 1) || backtrack(i - 1, j, cur + 1) || backtrack(i, j + 1, cur + 1) || backtrack(i, j - 1, cur + 1); board[j][i] = curStr return res }};