Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- bool dfs(vector< vector<char> >&board, int i, int j, int index, string& word){
- //NULL case
- if(i < 0 || i >= board.size() || j < 0 || j >= board.size() || board[i][j] == '*')
- return false;
- if(board[i][j] != word[index] || index >= word.length())
- return false;
- if(index == word.length() - 1)
- return true;
- char temp = board[i][j];
- board[i][j] = '*';
- bool ans = dfs(board, i + 1, j, index + 1, word) || dfs(board, i - 1, j, index + 1, word)
- || dfs(board, i, j + 1, index + 1, word) || dfs(board, i, j - 1, index + 1, word);
- board[i][j] = temp;
- return ans;
- }
- bool exist(vector<vector<char>>& board, string word) {
- for(size_t i = 0; i < board.size(); i++){
- for(size_t j = 0; j < board[i].size(); j++){
- if(dfs(board, i, j, 0, word)){
- return true;
- }
- }
- }
- return false;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement