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

news/2025/2/19 9:06:58/

题目:

"""

题目描述:

为庆祝三峡大学建校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))


http://www.ppmy.cn/news/1185935.html

相关文章

RocketMQ笔记

科普&#xff1a; 把数据放到消息队列叫做生产者从消息队列里边取数据叫做消费者 一、为什么要用消息队列&#xff1f; 消息队列主要有三大用途 &#xff1a;解耦、异步、削峰&#xff0c;是消息队列最主要的三大作用。 二、为什么选择RocketMQ 选择中间件的可以从这些维度来…

一共就五个名额,三个全给一个人?我表示不理解

我对csdn举办的#你写过的最蠢的代码是/这个话题的活动表示质疑&#xff01;&#xff01;&#xff01;&#xff01; 先来看看评选规则&#xff1a; 再来看看评分标准&#xff1a; 接下来看看获奖选手&#xff1a; 这三人有啥区别&#xff1f;

springboot项目通过自定义注解+aop实现对入参加解密

1.创建自定义注解&#xff1a; Target({ElementType.FIELD, ElementType.PARAMETER}) Retention(RetentionPolicy.RUNTIME) public interface EncryptDecrypt { }2.创建加解密工具类&#xff1a; public class EncryptionUtils {// 加密方法public static String encrypt(Str…

【文件存储服务器】Minio使用

文章目录 2.2 Minio使用2.2.1 Minio介绍2.2.2 Minio安装Windows安装Linux安装 2.2.3 Minio入门 2.3 上传文件接口2.3.1 FileUploadController2.3.2 FileUploadService2.3.3 MinioProperties2.3.4 配置文件内容2.3.5 主启动类加上EnableConfigurationProperties 2.4 前端对接 2.…

基于Java8的CompletableFuture实现的异步执行工具类

异步执行工具类 前言 基于Java8的CompletableFuture实现的异步执行工具类 package com.jareny.jave.design.thread;import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Optional; import j…

python引用计数

#python 垃圾回收算法 1、引用计数 2、标记-清除 3、分代收集import sysa[1,2,3] # print(dir(a)) ba ca da print(id(a),id(b)) print(id(c),id(d)) #sys.getrescount()可以获得对象的引用计数 print(sys.getrefcount(a)-1) print(sys.getrefcount(b)-1) a[1,2,3,4] print(sys…

蓝凌EIS智慧协同平台saveImg接口存在任意文件上传漏洞

蓝凌EIS智慧协同平台saveImg接口存在任意文件上传漏洞 一、蓝凌EIS简介二、漏洞描述三、影响版本四、fofa查询语句五、漏洞复现六、深度复现1、发送如花2、哥斯拉直连 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者…

memcmp内存比较函数

1.头文件&#xff1a;string.h 2.函数原型&#xff1a;int memcmp(const void *ptr1, const void *ptr2, size_t num) 3.函数功能&#xff1a;比较两块内存中数据的大小 4.参数解释&#xff1a; 比较 ptr1 和 ptr2 两个指针所指向的两块内存中的前 num 个字节 5.返回值&am…