当前位置:首页 > 编程笔记 > 正文
已解决

【python】挑选墙纸--CTGU计协编程部月考核

来自网友在路上 154854提问 提问时间:2023-10-30 15:22:02阅读次数: 54

最佳答案 问答题库548位专家为你答疑解惑

题目:

"""

题目描述:

为庆祝三峡大学建校100周年,学校购入多张墙纸以作装饰,每张墙纸为一个 n x m 的小写字母矩阵。其中,学长想挑选出能够从中读出 "ctgu" 字样的墙纸。具体来说,从墙纸的左侧至右侧选取四列,若第一列含字母 'c',第二列含字母 't',第三列含字母 'g',第四列含字母 'u',则视为好看的墙纸。选取的四列不必连续。

输入说明:

- 输入的第一行包含一个整数 t (1 <= t <= 100),表示测试用例数量。

- 随后,每个测试用例的第一行包含两个整数 n 和 m (1 <= n, m <= 20),表示墙纸的行数和列数。

- 接下来的 n 行,每行包含 m 个小写字母,描述墙纸的具体内容。

输出说明:

- 对于每个测试用例,若墙纸好看,则输出 "YES";否则,输出 "NO"。

"""

代码:

def is_beautiful_wallpaper(n, m, wallpaper):# 遍历墙纸的每一列,寻找包含字母 'c' 的列for col1 in range(m):# 使用列表推导式检查当前列是否包含字母 'c'if 'c' in [wallpaper[row][col1] for row in range(n)]:# 如果找到字母 'c',则从当前列的下一列开始继续遍历,寻找包含字母 't' 的列for col2 in range(col1 + 1, m):# 使用列表推导式检查当前列是否包含字母 't'if 't' in [wallpaper[row][col2] for row in range(n)]:# 如果找到字母 't',则从当前列的下一列开始继续遍历,寻找包含字母 'g' 的列for col3 in range(col2 + 1, m):# 使用列表推导式检查当前列是否包含字母 'g'if 'g' in [wallpaper[row][col3] for row in range(n)]:# 如果找到字母 'g',则从当前列的下一列开始继续遍历,寻找包含字母 'u' 的列for col4 in range(col3 + 1, m):# 使用列表推导式检查当前列是否包含字母 'u'if 'u' in [wallpaper[row][col4] for row in range(n)]:# 如果所有字母都被找到,则返回 "YES"return "YES"# 如果循环结束后还没返回,说明没有找到所有字母,返回 "NO"return "NO"# 读取测试用例数量
t = int(input())
# 循环处理每个测试用例
for _ in range(t):# 读取墙纸的行数和列数n, m = map(int, input().split())# 读取墙纸的内容,并将其存储为一个列表,列表的每个元素是墙纸的一行wallpaper = [input() for i in range(n)]# 调用函数,检查墙纸是否好看,并输出结果print(is_beautiful_wallpaper(n, m, wallpaper))

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【python】挑选墙纸--CTGU计协编程部月考核":http://eshow365.cn/6-27887-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!