Advertisement
Velinquish

LeetCode Word Search thing

Dec 28th, 2020
854
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * @param {character[][]} board
  3.  * @param {string} word
  4.  * @return {boolean}
  5.  */
  6. let currentWord = []  // List of coordinates
  7.  
  8. function search(board, word, r, c, i) {
  9.     if (i == word.length) // If it finished searching
  10.         return true;
  11.     if (board[r] == undefined || board[r][c] == undefined || board[r][c] != word.substring(i, i + 1) || currentWord.includes(r + " " + c))
  12.         return false;
  13.     currentWord.push(r + " " + c);
  14.     if (search(board, word, r + 1, c, i + 1))
  15.         return true;
  16.     if (search(board, word, r, c + 1, i + 1))
  17.         return true;
  18.     if (search(board, word, r - 1, c, i + 1))
  19.         return true;
  20.     if (search(board, word, r, c - 1, i + 1))
  21.         return true;
  22.     currentWord.pop();
  23.     return false;
  24. };
  25.  
  26. var exist = function(board, word) {
  27.     currentWord.length = 0 // Why does LeetCode keep the same array throughout all submission trials?? ;-;
  28.     for (let r = 0; r < board.length; r++)
  29.         for (let c = 0; c < board[0].length; c++)
  30.             if (search(board, word, r, c, 0))
  31.                 return true;
  32.     return false;
  33. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement