华为机试题【13】-wave数组找字母游戏
来源:互联网 发布:淘宝客好做不 编辑:程序博客网 时间:2024/06/05 11:44
题目描述:
Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉。如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f。
但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。
,指定W为“SOLO”,则在地图中红色标注了单词“SOLO”。
注意区分英文字母大小写,你只能上下左右行走。
运行时间限制: 无限制
内存限制: 无限制
输入:
输入第一行包含两个整数n、m(0
输出:
如果能在地图中连成给定的单词,则输出“YES”,否则输出“NO”。注意:每个字母只能用一次。
样例输入:
5 5
SOLO
CPUCY
EKLQH
CRSOL
EKLQO
PGRBC
样例输出:
YES
思路分析:
- 这道题同样对时间和空间没有要求,所以采用暴力破解
- 遍历二位数组,寻找对应的单词的字母,找到了要set=‘’,然后conninue
代码:
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNext()){ int n = scan.nextInt(); int m = scan.nextInt(); char[][] wave = new char[n][m]; String input = scan.next(); char[] inputArray = input.toCharArray(); for(int i = 0;i < n;i++){ String a = scan.next(); char[] aArray = a.toCharArray(); wave[i] = aArray; } int length = inputArray.length; boolean[] flag = new boolean[length]; for(int q = 0;q < length;q++){ flag[q] = false; } for(int c = 0;c < length;c++){ for(int j = 0;j < n;j++){ for(int k = 0;k < m;k++){ if(wave[j][k] == inputArray[c]){ if(flag[c] == false){ flag[c] = true; wave[j][k] = ' '; } } } } } for(int p = 0;p< length;p++){ if(flag[p] == false){ System.out.println("NO"); return; } } System.out.println("YES"); } }}
我的微信二维码如下,欢迎交流讨论
欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!
微信订阅号二维码如下:
0 1
- 华为机试题【13】-wave数组找字母游戏
- 华为机试题----数组中找满足 2^n的数字
- 华为机试题---数组移位
- 华为机试题--将字符串中的字母全部替换成字母的下一个字母
- 华为机试题:24点游戏
- 华为机试题一 字母与字符串位置
- (java)华为机试题:字母大小写判断
- 华为机试题----找一句话中最长的单词
- 2016华为机试题之 找第一个“1”
- 华为面试题【8】-找零钱
- 华为面试题【8】-找零钱
- 华为13年机试题
- 华为机试题——掷骰子游戏
- 华为机试题--24点游戏--In Java
- 2014华为机试题4:找出字符串中的元音字母并输出
- Java算法试题--猜字母/杀人游戏
- 华为机试题---二维数组的转置
- 华为机试题---二维数组的转置
- Linux守护进程加上发送信号固定模式
- iOS Autolayout 介绍 2 Interface Builder 技巧
- Linux下的tar压缩解压缩命令详解
- python学习——列表生成式
- android中MVP模式(一)
- 华为机试题【13】-wave数组找字母游戏
- iOS学习(二十三)Objective-C 静态vs动态
- NYOJ-阶乘因式分解(一)(二)
- Irrlicht学习笔记(11)--TerrainRender
- linux more命令简单使用
- java blockingqueue 单独用, 结合线程池用
- 什么是第三方库/程序?
- Android Base64 Md5 SHA1 编码解码 解析
- hdu 1395 欧拉定理+快速幂+素数判定