L1-054 福到了(Python实现) 测试点全过

前言: {\color{Blue}前言:} 前言:

  • 本系列题使用的是,“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度。
  • 更新取决于题目的难度,和学校的事情,但尽可能保证每日更新,若没更新次日补上。
  • 这道题感觉吧,就是一个回文的加强版
  • 我的方法可能不是最简单的,如有什么好的建议,欢迎各位CSDN的朋友告诉我

题目

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

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

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

输入样例1:

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

输出样例1:

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

输入样例2:

& 3
@@@
 @ 
@@@

输出样例2:

bu yong dao le
&&&
 & 
&&&

题解

char, N = input().split()  # 输入倒过来的汉字所用的字符和网格的规模 N
N = int(N)  # 将 N 转换为整数类型
grid = []  # 存储输入的网格

# 读取输入的网格
for _ in range(N):
    row = input()
    grid.append(row)

# 判断是否为回文
is_palindrome = True
for i in range(N):
    for j in range(N):
        if grid[i][j] != grid[N-1-i][N-1-j]:
            is_palindrome = False
            break
    if not is_palindrome:
        break

# 输出结果
if is_palindrome:
    print("bu yong dao le")
    
for i in range(N-1, -1, -1):
        for j in range(N-1, -1, -1):
            print(char if grid[i][j] == '@' else ' ', end='')
        print()

你可能感兴趣的:(python,算法,数据结构)