普及练习场 深度优先搜索 单词方阵

来源:互联网 发布:网络营销师和编程 编辑:程序博客网 时间:2024/06/02 03:40

题目链接

题意理解

就是说,在一个方阵里面找”yizhong”,八个方向是Markdown

然后这题目我其实不知道怎么用dfs去写。。。 非要用dfs写,就是在search基础上优化一下,而不是得到了所有的字符串之后再进行判断结果。比如说,你得到的字符串已经是”yig”了,你知道肯定不对了,就可以退出dfs了,但是按照我的做法,你还得继续搞下去。

代码

import java.util.Scanner;public class Main {    static int[][] changes = { { -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, -1 }, { 0, 1 }, { 1, -1 }, { 1, 0 }, { 1, 1 } };    static String yizhong = "yizhong";    static String[] string;    static boolean[][] ok;    static int n;    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        n = scanner.nextInt();        ok = new boolean[n][n];        for (int i = 0; i < n; i++) {            for (int j = 0; j < n; j++) {                ok[i][j] = false;            }        }        string = new String[n];        for (int i = 0; i < n; i++) {            string[i] = scanner.next();        }        scanner.close();        for (int i = 0; i < n; i++) {            for (int j = 0; j < n; j++) {                if (string[i].charAt(j) == 'y') {                    search(i, j);                }            }        }        for (int i = 0; i < n; i++) {            for (int j = 0; j < n; j++) {                if (ok[i][j]) {                    System.out.print(string[i].charAt(j));                } else {                    System.out.print("*");                }            }            System.out.println();        }    }    static void search(int x, int y) {        for (int t = 0; t < changes.length; t++) {            String temp = "";            for (int i = 0; i < 7; i++) {                int tempX = x + changes[t][0] * i;                int tempY = y + changes[t][1] * i;                if (0 <= tempX && tempX < n && 0 <= tempY && tempY < n) {                    temp += string[tempX].charAt(tempY);                }            }            if(temp.equals(yizhong)) {                for (int i = 0; i < 7; i++) {                    int tempX = x + changes[t][0] * i;                    int tempY = y + changes[t][1] * i;                    ok[tempX][tempY] = true;                }            }        }    }}

欢迎加入“不会算法一群菜鸟”,群号是⑥⑥①⑨②2025,这是我设置的一道很低的门槛用来阻止广告的。入群的验证暗号是:我爱编译原理

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 杏色裤子搭配什么颜色上衣 杏色裙子配什么颜色外套好看 杏色露台月季 棕色 米色 卡其色 杏芎氯化钠 杏芎氯化钠作用与功效 杏花花期 杏花颜色 杏花什么颜色 杏花嫂宋不凡全部章节 花褪残红青杏小 杏花弦外雨 北陂杏花 杏花诗句大全 老村长和杏花全文 水杏洋花 杏花几月开 杏花图片 医路杏花 杏花有关诗句 杏花什么时候开 辉月杏花全部作品 什么的杏花 杏花古诗 银豆杏花于翠 春日游杏花吹满头全文 杏花烟雨江南 北坡杏花 深巷明朝卖杏花 梵高杏花 杏花几月开花 北陂杏花王安石 杏花沟大壮在线阅读 单杏花 杏花鸡 杏花的颜色 杏花春雨落雪时节 杏花嫂石头 杏花出墙乱世道