c语言怎么实现单词搜索
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"c语言怎么实现单词搜索",内容详细,步骤清晰,细节处理妥当,希望这篇"c语言怎么实现单词搜索"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。单词搜索给
千家信息网最后更新 2026年11月01日c语言怎么实现单词搜索
本文小编为大家详细介绍"c语言怎么实现单词搜索",内容详细,步骤清晰,细节处理妥当,希望这篇"c语言怎么实现单词搜索"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
单词搜索
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
代码解题如下:
int pi,pj;//static int r[100][100];void f(char** board,int n ,int m,int x,int y,char * word,int p,int **r, int *rz){ int a[4][2]={{0,-1},{-1,0},{0,1},{1,0}}; // printf(" %d ",r[x][y]); int nx,ny; int i,j; int cc=0; int l=0; int zx,zy; //printf("%d ",r); // r[x][y]=1; //printf(" --p %d %d ",p,rz); if(m>=3)r[0][3]=0; //printf("%d %c ",r[0][3],word[p]); for(i=0;i<4;i++){ nx=a[i][0]+x; ny=a[i][1]+y; // if(nx==2)printf(" --nx ny %d %d %c",nx,ny,word[p]); if(nx>=0&&nx<=n&&ny>=0&&ny<=m){ if(r[nx][ny]>=1 &&r[nx][ny]<=p*2&&board[nx][ny]==word[p-1]){ r[nx][ny]++; // printf("%d %d ",nx,ny); f(board,n,m,nx,ny,word,p,r,rz); // f(board,n,m,pi,pj,word,p,r,rz); // f(board,n,m,0,0,word,p,r,rz); } if(r[nx][ny]==0){ // printf("ddf sa "); if(board[nx][ny]==word[p]){ for(j=0;j<4&&j!=i;j++){ zx=a[i][0]+x; zy=a[i][1]+y; if(board[zx][zy]==word[p]) { // printf("&& %c %d %d ",word[p],zx,zy); r[zx][zy]=0; // if(zx==0&&zy==3) // printf("r %d %d %d ",r[zx][zy],zx,zy); } } // printf(" nx ny %d %d %c",nx,ny,word[p]); // p++; // cc++; // printf("-- %c",word[p]); r[nx][ny]=1; printf("r %d %d %d %d ",r[nx][ny],nx,ny); f(board,n,m,nx,ny,word,p+1,r,rz); } } } } // printf(" --p %d %d ",p,rz); // if(cc==0){r[x][y]=0;} if(word[p]=='\0') { // printf(" **p %d %d",p,rz); *rz=1;} // // return true;}bool exist(char** board, int boardSize, int* boardColSize, char * word){ int i,j; int n=boardSize-1; int m=boardColSize[0]-1; int p=1; int x=0,y=0; int row; int z,w; int rz=0; // r[x][y]=1; // printf("-- %d ",rz); int **r = (int **)malloc(sizeof(int*) *boardSize ); for(row = 0 ; row < boardSize; row++) { r[row] = (int *)malloc(sizeof(int) * boardColSize[0]); memset(r[row],0,sizeof(int) * boardColSize[0]); }// printf("%d %d ",n,m); for(i=0;i<=n;i++){ for(j=0;j<=m;j++){ // printf("%c ",board[i][j]); if(board[i][j]==word[0]){ for(z=0;z<=n;z++){ for(w=0;w<=m;w++){ r[z][w]=0; // printf("%c ",board[i][j]); } } r[i][j]=1; pi=i; pj=j; f(board,n,m,i,j,word,p,r,&rz); } } } // printf(" zz %d ",rz); if(rz==1)return true; else return false;}读到这里,这篇"c语言怎么实现单词搜索"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
单词
搜索
单元
语言
字母
文章
内容
字符
网格
格内
妥当
代码
字符串
思路
新知
更多
步骤
水平
知识
知识点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
广东万易互联网科技有限公司惠州分公司
中资互联网科技
世界互联网领先科技成果
长亮科技互联网金融
大白互联网科技
互联网科技汛
人人互联网科技是培训
中国互联网有什么科技含量
茂名市互联网科技产业园
武汉健翔互联网络科技有限公司
千方科技属于互联网企业吗
互联网科技扶贫时间
南博望互联网科技有限公司
互联网金融科技元年
黑科技 体验场景 互联网大会
互联网第三次科技革命特征
工业互联网科技成果转化
扫呗互联网科技有限公司
互联网科技包装股
互联网通讯科技
阿里互联网科技公司
厦门江牛科技互联网
互联网时代科技型公司的机会
互联网科技手机排行榜
云南互联网科技学费
北京天晋互联网科技有限公司
科技和互联网行业的特点
安徽零酒互联网科技有限公司
上海互联网科技园景观