c语言怎么实现单词搜索
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本文小编为大家详细介绍"c语言怎么实现单词搜索",内容详细,步骤清晰,细节处理妥当,希望这篇"c语言怎么实现单词搜索"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。单词搜索给
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
2016重大网络安全事件
宽带服务器维护怎么办
珠海商城软件开发咨询
浙江通信软件开发服务创意
浙江前端软件开发机构
计算机网络技术的工资高不高
申论网络安全要求
打不死服务器集群
网址 软件开发月薪
壹家之主互联网科技面试
数据库jquery家谱
和利时网络安全产品招标
七一网络安全保障小故事
苏州叠纸网络技术有限公司
深入浅出嵌入式底层软件开发
数据库怎么打开库代码
云服务器装windows7
安徽梦泰网络技术有限公司
中国银联云支付服务器
嵌入式软件开发怎么赚外快
完成 软件开发
营销数据库照片
网络技术让我的生活更美好
网络安全法行政处罚案由
网络安全在身边文章
中国建设银行网络安全
大v粉丝列表数据库
蔚来软件开发加入
怎么查看人民日报数据库
1核1g服务器