Python “福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。 输入格式: 输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。 输出格式: 输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。 输入样例 1: $ 9 @ @@@@@ @@@ @@@ @ @ @ @@@ @@@ @@@ @@@@@ @@@ @ @ @ @@@ @@@@@ @ @ @ @ @ @@@@@ 输出样例 1: $$$$$ $ $ $ $ $ $$$$$ $$$ $ $ $ $$$ $$$$$ $$$ $$$ $$$ $ $ $ $$$ $$$ $$$$$ $ 输入样例 2: & 3 @@@ @ @@@ 输出样例 2: bu yong dao le &&& & &&&
时间: 2023-09-29 08:11:01 浏览: 142
用python来做“福”字书法
```python
c, n = input().split()
n = int(n)
grid = [input() for _ in range(n)]
if grid == grid[::-1]:
print('bu yong dao le')
print('\n'.join([row[::-1].replace('@', c) for row in grid]))
else:
print('\n'.join([''.join([' ' if col == ' ' else c for col in row[::-1]]) for row in grid]))
```
解释:
首先读入输入,分别为使用的字符和网格大小。然后读取网格,保存到列表 `grid` 中。
接下来,我们判断这个汉字正过来倒过去是否一样。如果是,我们需要先输出 `bu yong dao le`,然后将每一行逆序并将 `@` 替换为指定字符 `c`。如果不是,我们需要将每一行逆序,然后将每个非空格字符替换为指定字符 `c`。
最后,我们将处理好的每一行输出即可。注意,每行输出完后需要换行。
阅读全文