class Solution {
public:
int row = 0,col = 0;
bool exist(vector<vector<char>>& board, string word) {
row = board.size();
col = board[0].size();
for(int i = 0;i < row;i++){
for(int j = 0;j < col;j++){
if(dfs(board,i,j,0,word))return true;
}
}
return false;
}
bool dfs(vector<vector<char>>& board,int x,int y,int key,string& word){
if(x>=row || x<0 || y>=col || y<0 || board[x][y]!=word[key])return false;
if(key == word.size()-1)return true;
board[x][y] = '\0'; //防止回头走
bool ret = (dfs(board,x-1,y,key+1,word)
|| dfs(board,x+1,y,key+1,word)
|| dfs(board,x,y-1,key+1,word)
|| dfs(board,x,y+1,key+1,word));
board[x][y] = word[key];
return ret;
}
};
矩阵中的路径
最新推荐文章于 2024-07-19 10:30:10 发布