Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. class Solution {
  2. public:
  3.      bool dfs(vector< vector<char> >&board, int i, int j, int index, string& word){
  4.        
  5.         //NULL case
  6.         if(i < 0 || i >= board.size() || j < 0 || j >= board.size() || board[i][j] == '*')
  7.             return false;
  8.         if(board[i][j] != word[index] || index >= word.length())
  9.             return false;
  10.         if(index == word.length() - 1)
  11.             return true;
  12.        
  13.         char temp = board[i][j];
  14.         board[i][j] = '*';
  15.        
  16.         bool ans = dfs(board, i + 1, j, index + 1, word) || dfs(board, i - 1, j, index + 1, word)
  17.                         || dfs(board, i, j + 1, index + 1, word) || dfs(board, i, j - 1, index + 1, word);
  18.        
  19.         board[i][j] = temp;
  20.         return ans;
  21.        
  22.        
  23.     }
  24.    
  25.     bool exist(vector<vector<char>>& board, string word) {
  26.         for(size_t i = 0; i < board.size(); i++){
  27.             for(size_t j = 0; j < board[i].size(); j++){
  28.                 if(dfs(board, i, j, 0, word)){
  29.                         return true;
  30.                     }
  31.                 }        
  32.             }
  33.        
  34.         return false;    
  35.    
  36.     }
  37. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement