![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/70a10245cb289e91298c867c9e7e901c.png)
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int vis[6][6];
int flag;
void dfs(char** board,int boardSize,int boardColSize,int length,int ith,int x,int y,char* word){
if(ith==length){
flag=1;
return;
}
for(int a=0;a<4;a++){
int newX=dx[a]+x;
int newY=dy[a]+y;
if(newX>=0&&newX<boardSize&&newY>=0&&newY<boardColSize&&vis[newX][newY]==0&&board[newX][newY]==word[ith]){
vis[newX][newY]=1;
dfs(board,boardSize,boardColSize,length,ith+1,newX,newY,word);
vis[newX][newY]=0;
}
}
}
bool exist(char** board, int boardSize, int* boardColSize, char * word){
flag=0;
for(int a=0;a<boardSize;a++){
for(int b=0;b<boardColSize[0];b++){
if(board[a][b]==word[0]){
for(int c=0;c<6;c++){
for(int d=0;d<6;d++){
vis[c][d]=0;
}
}
vis[a][b]=1;
dfs(board,boardSize,boardColSize[0],strlen(word),1,a,b,word);
}
}
}
if(flag==1){
return true;
}
return false;
}