c语言怎么实现单词搜索
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文小编为大家详细介绍"c语言怎么实现单词搜索",内容详细,步骤清晰,细节处理妥当,希望这篇"c语言怎么实现单词搜索"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。单词搜索给
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
怎样做管理软件开发工程师
app软件开发一个多少钱
二手影吧服务器
中国网络技术大会
北方工业大学网络安全
全国网络安全宣传周活动主题
数据库做乘法运算
网络安全教案带图片
深圳软件开发公司优势
工业软件开发设计专业
像素工厂远程服务器管理端口
网络安全月手绘海报
中科国产服务器
君达网络技术有限公司地址
局域网服务器迁移到云服务器
安徽一安网络技术有限公司
服务器达到下载限制
多式联运软件开发报价
互联网科技公司算企事业单位吗
rose数据库表关系
北京编程软件开发机构
服务器监视终端管理
君达网络技术有限公司地址
郑州网络安全待遇
网络安全专业高职学校排名
财务数据库满了
云服务器可以用企业网站么
ntp服务器搭建
拓普视频服务器手机端
数据库access 说课稿