L1-6 福到了(Java)

简介: L1-6 福到了(Java)

L1-6 福到了(Java)

分数 15

全屏浏览题目切换布局

作者 陈越

单位 浙江大学

“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。

输入格式:

输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。

输出格式:

输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。

输入样例 1:

$ 9
 @  @@@@@
@@@  @@@ 
 @   @ @ 
@@@  @@@ 
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
 @  @ @ @
 @  @@@@@

输出样例 1:

$$$$$  $ 
$ $ $  $ 
$$$$$ $$$
$ $ $ $$$
$$$$$ $$$
 $$$  $$$
 $ $   $ 
 $$$  $$$
$$$$$  $ 

输入样例 2:

& 3
@@@
 @ 
@@@

输出样例 2:

bu yong dao le
&&&
 & 
&&&

答案

import java.util.Scanner;
public class MirrorImage {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char ch = scanner.next().charAt(0);  // 输入字符
        int n = scanner.nextInt();  // 输入矩阵大小
        scanner.nextLine();  // 消耗掉换行符
        String[] mp = new String[n];
        // 输入矩阵内容
        for (int i = 0; i < n; i++) {
            mp[i] = scanner.nextLine();
        }
        boolean flag = true;
        // 判断是否为对称矩阵
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (mp[i].charAt(j) != mp[n - 1 - i].charAt(n - 1 - j)) {
                    flag = false;
                }
            }
        }
        if (flag) {
            System.out.println("bu yong dao le");
        }
        // 输出镜像
        for (int i = n - 1; i >= 0; i--) {
            for (int j = n - 1; j >= 0; j--) {
                if (mp[i].charAt(j) != ' ') {
                    System.out.print(ch);
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
        scanner.close();
    }
}
相关文章
|
7月前
|
存储 安全 Java
Java密码系统
Java密码系统
74 0
|
1月前
|
存储 IDE Java
Java“ClassFormatError”解决
Java中的“ClassFormatError”是一个运行时异常,通常发生在类文件格式不正确或被篡改时。本文将介绍该错误的常见原因及解决方法,帮助开发者快速定位并解决问题。
61 2
|
Java
Java之“珠穆朗玛峰”
Java之“珠穆朗玛峰”
113 0
|
存储 SQL 缓存
JAVA问答16
JAVA问答16
126 0
|
Java
Java常见的坑(二)
你猜上述程序输出的是什么? 是 ABC easy as 123 吗? 你执行了输出操作,你才发现输出的是 ABC easy as [C@6e8cf4c6 ,这么一串丑陋的数字是什么鬼? 实际上我们知道字符串与任何数值的相加都会变为字符串,上述事例也不例外, numbers输出其实实际上是调用了Object.toString()方法,让numbers转变为'[c' + '@' + 无符号的十六进制数。
74 0
|
Oracle IDE Java
从Java8到Java17
背景Java8的前世今生作为一名程序员,笔者从大学开始接触Java这门编程语言,还记得当时的版本是1.4,不过这个版本的寿命还挺长,目前在一些金融行业的存量系统中依然还有1.4版本的影子。从C/C++到Java,Java给我的第一印象,就是这门语言的语法非常之啰嗦,比如内部类,像下面这段排序的代码,在C语言里面可以很方便地通过函数指针来解决,C++可以通过运算符重载来解决,唯独Java语言的写法最
从Java8到Java17
|
安全 Oracle Java
Java小史:从1到5
介绍Java从1到5的版本变化
220 0
|
Java
Java - 9 个小技巧让你的 if else 看起来更优雅(四)
Java - 9 个小技巧让你的 if else 看起来更优雅(四)
113 0
|
算法 Java Linux
Java ConcurrentSkipListMap 实现
本文目前只是简单地介绍了 Java 并发容器中 ConcurrentSkipListMap 的实现方式,后续会考虑拓展本文,从源码的角度进行详细的分析。
Java ConcurrentSkipListMap 实现