题目
参考资料
https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/solution/mian-shi-ti-12-ju-zhen-zhong-de-lu-jing-shen-du-yo/
思路要点
dfs+剪枝
其实思路很简单,但是实现总是有很多错误
代码
class Solution {
public:
int row;
int col;
bool dfs(vector<vector<char>>& board, string word,int i,int j,int k){
//可行性剪枝
if(i<0||i>=row||j<0||j>=col||board[i][j]!=word[k]) return false;
if(k==word.size()-1) return true;
board[i][j]='\0';
bool ans=dfs(board,word,i+1,j,k+1) || dfs(board,word,i-1,j,k+1) || dfs(board,word,i,j+1,k+1) || dfs(board,word,i,j-1,k+1);
board[i][j]=word[k];
return ans;
}
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,word,i,j,0)) return true;
}
}
return false;
}
};