题目:
"""文章来源:https://www.toymoban.com/news/detail-713210.html
题目描述:
为庆祝三峡大学建校100周年,学校购入多张墙纸以作装饰,每张墙纸为一个 n x m 的小写字母矩阵。其中,学长想挑选出能够从中读出 "ctgu" 字样的墙纸。具体来说,从墙纸的左侧至右侧选取四列,若第一列含字母 'c',第二列含字母 't',第三列含字母 'g',第四列含字母 'u',则视为好看的墙纸。选取的四列不必连续。
输入说明:
- 输入的第一行包含一个整数 t (1 <= t <= 100),表示测试用例数量。
- 随后,每个测试用例的第一行包含两个整数 n 和 m (1 <= n, m <= 20),表示墙纸的行数和列数。
- 接下来的 n 行,每行包含 m 个小写字母,描述墙纸的具体内容。
输出说明:
- 对于每个测试用例,若墙纸好看,则输出 "YES";否则,输出 "NO"。
"""
代码:文章来源地址https://www.toymoban.com/news/detail-713210.html
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))
到了这里,关于【python】挑选墙纸--CTGU计协编程部月考核的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!