1)纯DFS
![](https://img-blog.csdnimg.cn/7190ef2306ab4ca390c38bdd5f12aac9.png)
class Solution {
public:
void dfs(vector<vector<char>>& board, string word, vector<vector<int>>& visited, int i, int j, int idx, int &flag)
{
if(i < 0 || i >= board.size() || j < 0 || j >= board[0].size() || visited[i][j] == 1 || board[i][j] != word[idx])
{
return;
}
if(idx == word.size() - 1)
{
flag = 1;
return;
}
idx++;
visited[i][j] = 1;
dfs(board, word, visited, i-1, j, idx, flag);
dfs(board, word, visited, i+1, j, idx, flag);
dfs(board, word, visited, i, j-1, idx, flag);
dfs(board, word, visited, i, j+1, idx, flag);
visited[i][j] = 0;
}
bool exist(vect