1. var exist = function (board, word) {
    2. if (!board.length) return false
    3. if (!word.length) return true
    4. let row = board[0].length,
    5. col = board.length
    6. for (let i = 0; i < row; i++) {
    7. for (let j = 0; j < col; j++) {
    8. const res = backtrack(i, j, 0)
    9. if (res) return res
    10. }
    11. }
    12. return false
    13. function backtrack(i, j, cur) {
    14. if(i >= row || i < 0) return false
    15. if(j >= col || j < 0) return false
    16. const curStr = board[j][i]
    17. if(curStr !== word[cur]) return false
    18. if(cur === word.length - 1) return true
    19. board[j][i] = null
    20. const res = backtrack(i + 1, j, cur + 1) ||
    21. backtrack(i - 1, j, cur + 1) ||
    22. backtrack(i, j + 1, cur + 1) ||
    23. backtrack(i, j - 1, cur + 1);
    24. board[j][i] = curStr
    25. return res
    26. }
    27. };