我的编程空间,编程开发者的网络收藏夹
学习永远不晚

c语言怎么实现单词搜索

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

c语言怎么实现单词搜索

本文小编为大家详细介绍“c语言怎么实现单词搜索”,内容详细,步骤清晰,细节处理妥当,希望这篇“c语言怎么实现单词搜索”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

单词搜索

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

c语言怎么实现单词搜索

代码解题如下:

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语言怎么实现单词搜索”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

c语言怎么实现单词搜索

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c语言怎么实现单词搜索

本文小编为大家详细介绍“c语言怎么实现单词搜索”,内容详细,步骤清晰,细节处理妥当,希望这篇“c语言怎么实现单词搜索”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。单词搜索给定一个 m x n 二维字符网格 boa
2023-06-30

C语言中find_package()的搜索路径的实现是怎样的

这篇文章给大家介绍C语言中find_package()的搜索路径的实现是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。find_package()内部用find_path()和find_library()实现的找
2023-06-22

PIC单片机C语言怎么实现

PIC单片机是一种常用的嵌入式系统控制器,可以使用C语言来进行开发和编程。下面是一个简单的示例,演示如何使用C语言来实现一个PIC单片机的程序:```c#include // 包含PIC单片机的头文件// 定义LED接口引脚#defin
2023-09-21

C语言单线程怎么实现异步

在C语言的单线程环境中,要实现异步,可以使用以下几种方式:1. 使用信号(Signal):可以使用 `signal` 函数来设置信号处理函数,当某个事件发生时,触发信号处理函数执行相应的操作。在信号处理函数中可以处理异步操作。2. 使用定时
2023-10-12

android简单搜索框功能怎么实现

要实现一个简单的搜索框功能,可以按照以下步骤进行操作:在布局文件中添加一个EditText作为搜索框,同时添加一个按钮用于触发搜索操作。示例代码如下:
android简单搜索框功能怎么实现
2024-03-11

微信小程序搜索关键词高亮怎么实现

本篇内容介绍了“微信小程序搜索关键词高亮怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!项目中碰到一个需求,微信小程序搜索数据并且关键
2023-06-27

java怎么实现搜索框搜索功能

要实现搜索框搜索功能,可以按照以下步骤进行:1. 在前端页面上创建一个搜索框,如一个文本框和一个按钮。2. 在后端创建一个处理搜索请求的接口。可以使用Java的Servlet或者Spring MVC框架来创建接口。3. 在后端接口中获取前端
2023-09-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录