题解 | #扫雷#

扫雷

https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd

import java.util.Scanner;

public class Main {
    public static void main(String[] args)  {

        Scanner in = new Scanner(System.in);
        int  n = in.nextInt();
        int  m = in.nextInt();
        String s ;
        int count;
        char[][] a = new char[n][m];//初始的雷矩阵
        for (int i = 0 ; i < n ; i++) {
            s = in.next();//坑!样例输入为连续的一行,不能in.next().charAt(0)
            for (int j = 0 ; j < m ; j++) {
                a[i][j] = s.charAt(j);
            }
        }
        for (int i = 0; i < n; i++) {//遍历数组所有元素
            for (int j = 0; j < m; j++) {
                if (a[i][j] == '*') {
                    continue;
                } else {//a[i][j='.'
                    count = 0;
                    for (int x = i - 1; x <= i + 1; x++) {//判断当前元素的九宫格元素
                        if (x < 0 || x >= n) {//过滤越界行
                            continue;
                        }
                        for (int y = j - 1; y <= j + 1; y++) {
                            if (y < 0 || y >= m) {//过滤越界列
                                continue;
                            } else if (a[x][y] == '*') {
                                count++;
                            }
                        }
                    }
                    a[i][j] = (count + "").charAt(0);
                }
            }
            System.out.println(a[i]);//打印一行
        }
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务