Word Maze单词迷宫C语言解法(详细注解)

Word Maze单词迷宫C语言解法(详细注解)

题目描述

Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。假设给定单词if,你必须先吃掉i然后才能吃掉f。
但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。
注意区分英文字母大小写,并且你只能上下左右行走。

输入
输入第一行包含两个整数n、m(0<n,m<21)分别表示n行m列的矩阵,第二行是长度不超过100的单词W,从第3行到第n+2行是只包含大小写英文字母的长度为m的字符串。

输出
如果能在地图中连成给定的单词,则输出“YES”,否则输出“NO”。注意:每个字母只能用一次。

C语言代码

#include <stdio.h>
#include <string.h>
/*也可不建立全局变量,将相关数组用指针的方式传递到函数中进行操作*/
int n, m;
char str[100];
char array[21][21];
int visit[21][21] = {0}; //记录已找过的字母位置
int DFS(int i, int j, int k, int length)
{
    /*判断是否到达单词尾部,若到达表示已找到*/
    if (k == length)
    {
        return 1;
    }
    /*判断是否到达边界*/
    if ((i >= n) || (j >= m) || (i < 0) || (j < 0))
    {
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值