1 classSolution {2 Public:3 BOOLexist (vector<vector<Char>>& Board,stringword) {4vector<vector<int>> visited (Board.size (), vector<int> (board[0].size (),0));5 for(inti =0; I < board.size (); ++i) {6 for(intj =0; J < board[0].size (); ++j) {7 if(Dfs (board, visited, Word, I, J,0))return true;8 }9 }Ten return false; One } A Private: - BOOLDFS (vector<vector<Char>>& board, vector<vector<int>>& visited,stringWordintXintYintPOS) - { the if(!Visited[x][y]) { - if(Board[x][y] = =Word[pos]) { -Visited[x][y] =1; - if(pos = = Word.size ()-1)return true; + Else { - if(x +1< Board.size () &&!visited[x +1][y] && DFS (board, visited, Word, X +1, Y, POS +1))return true; + if(X-1>=0&&!visited[x-1][y] && DFS (board, visited, Word, X-1, Y, POS +1))return true; A if(Y +1< board[0].size () &&!visited[x][y +1] && DFS (board, visited, Word, X, y +1, POS +1))return true; at if(Y-1>=0&&!visited[x][y-1] && DFS (board, visited, Word, X, Y-1, POS +1))return true; - } -Visited[x][y] =0; - } - Else { - return false; in } - } to return false; + } -};
079. Word Search