WordSearch

来源:互联网 发布:期货交易数据下载 编辑:程序博客网 时间:2024/05/16 03:21

AC

bool dfs(vector<vector<char> > &board,vector<vector<bool> > &visit,string word,int i,int j,int dep,int maxdepth){if(dep>=maxdepth){return true;}// for(int i=0;i<4;++i)// {if(i+1<board.size()&&board[i+1][j]==word[dep+1]&&visit[i+1][j]==false){ visit[i+1][j]=true;if(dfs(board,visit,word,i+1,j,dep+1,maxdepth)){visit[i+1][j]=false;return true;}visit[i+1][j]=false;}if(i-1>=0&&board[i-1][j]==word[dep+1]&&visit[i-1][j]==false){ visit[i-1][j]=true;if(dfs(board,visit,word,i-1,j,dep+1,maxdepth)){visit[i-1][j]=false;return true;}visit[i-1][j]=false;}if(j+1<board[i].size()&&board[i][j+1]==word[dep+1]&&visit[i][j+1]==false){ visit[i][j+1]=true;if(dfs(board,visit,word,i,j+1,dep+1,maxdepth)){visit[i][j+1]=false;return true;}visit[i][j+1]=false;}if(j-1>=0&&board[i][j-1]==word[dep+1]&&visit[i][j-1]==false){ visit[i][j-1]=true;if(dfs(board,visit,word,i,j-1,dep+1,maxdepth)){visit[i][j-1]=false;return true;}visit[i][j-1]=false;}//}return false;}bool exist(vector<vector<char> > &board, string word){    vector<vector<bool> > visit; for(int i=0;i<board.size();++i){vector<bool> tmp(board[i].size(),false);//printf("*\n");visit.push_back(tmp);} for(int j=0;j<board.size();++j){for(int k=0;k<board[j].size();++k){ if(word[0]==board[j][k]){visit[j][k]=true;if(dfs(board,visit,word,j,k,0,word.size()-1)){return true;}visit[j][k]=false;}}}return false;}


0 0
原创粉丝点击