Word Maze 网络小游戏
来源:互联网 发布:面试php基础知识 编辑:程序博客网 时间:2024/06/04 19:00
Word Maze 网络小游戏
Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。如上图,假设给定单词if,
你必须先吃掉i然后才能吃掉f。但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,
但你只能吃掉能连成给定单词W的食物。
如下图,指定W为“SOLO”,则在地图中红色标注了单词“SOLO”。注意区分英文字母大小写,你只能上下左右行走。
输入:
输入第一行包含两个整数n、m(0<n, m<21)分别表示n行m列的矩阵,第二行是长度不超过100的单词W,从第3行到底n+3行是
只包含大小写英文字母的长度为m的字符串。
输出:
如果能在地图中连成给定的单词,则输出“YES”,否则输出“NO”。注意:每个字母只能用一次。
样例输入:
5 5
SOLO
CPUCY
EKLQH
CRSOL
EKLQO
PGRBC
样例输出: YES
这是一道华为机试题,博主不才,有问题还请大家指出,一起探讨。
下面是代码:
#include "stdafx.h"#include<iostream>#include<string>using namespace std;static char **pCube;static char word[100];static int row,column;//吃字母逻辑void eatWord(int w,int i,int j,int *flag){//不能越界if(i<0||i>row||j<0||j>column) {return;}//成功条件是标志位w==单词长度if (w==strlen(word)){cout<<"YES";return;}if (i<row-1&&pCube[i+1][j]==word[w]&&flag[(i+1)*row+j]==0){flag[(i+1)*row+j]=1;eatWord(w+1,i+1,j,flag);}if (i>0&&pCube[i-1][j]==word[w]&&flag[(i-1)*row+j]==0){flag[(i-1)*row+j]=1;eatWord(w+1,i-1,j,flag);}if (j<column-1&&pCube[i][j+1]==word[w]&&flag[i*row+j+1]==0){flag[i*row+j+1]=1;eatWord(w+1,i,j+1,flag);}if (j>0&&pCube[i][j-1]==word[w]&&flag[i*row+j-1]==0){flag[i*row+j-1]=1;eatWord(w+1,i,j-1,flag);}//将字母使用标志位重新全部置零for (int x = 0; x < row*column; x++){flag[x]=0;}return;}int _tmain(int argc, _TCHAR* argv[]){cout<<"输入行数 列数:"<<endl;cin>>row>>column;cout<<"输入单词:"<<endl;cin>>word;cout<<"输入矩阵:"<<endl;pCube = new char*[row];//初始化标志位,保证每个字母只用一次int *flag = (int *)malloc(sizeof(int)*row*column);for (int i = 0; i < row*column; i++){flag[i]=0;}//初始化矩阵for (int i = 0; i < row; i++){pCube[i] = new char[column];cin>>pCube[i];}//找到矩阵中和单词首字母一致的位置,开吃!int w=0;for (int i = 0; i < row; i++){for (int j = 0; j < column; j++){if(word[w]==pCube[i][j]){flag[i*row+j]=1;eatWord(w+1,i,j,flag);}}}cout<<"NO"<<endl;system("PAUSE");return 0;}
0 0
- Word Maze 网络小游戏
- 2015华为Word Maze 是一个网络小游戏,你需要找到以字母标注的食物
- Word Maze(单词迷宫)
- Word Maze 单词迷宫
- Word Maze(单词迷宫)
- 华为机试 Word maze
- Word Maze(单词迷宫)
- 【网络流】hdu4067 Random Maze
- 华为机试---Word Maze迷宫游戏
- Maze
- maze
- Maze
- maze
- Maze
- maze
- Maze
- Maze
- Maze
- 冒泡排序及改进版
- PIG--shell脚本
- 黑马程序员 java 笔记之常用工具类
- POJ 2242 The Circumference of the Circle
- 关于UIView 的autoresizingMask属性,即UIViewAutoresizing
- Word Maze 网络小游戏
- 福州大学 Problem 2168 防守阵地 I
- PHP基础学习第二讲(分支讲解)
- HDU 1115 Lifting the Stone
- ACM-计算几何之Scrambled Polygon——poj2007
- 《算法导论》笔记 第15章 总结与思考
- 让Editplus支持sql语法高亮显示
- 今天,Java编程周末提高班(第一期)正式结束
- 使用SQLPLUS生成HTML报表