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
}
};