码迷,mamicode.com
首页 > 编程语言 > 详细

华为机试题【13】-wave数组找字母游戏

时间:2016-07-10 11:16:28      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:

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面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

技术分享

华为机试题【13】-wave数组找字母游戏

标签:

原文地址:http://blog.csdn.net/lpjishu/article/details/51870399

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!