2023年14届蓝桥杯省赛“日期统计”题解

news2025/3/12 13:33:59

问题描述
小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的范围之内。数组中的元素从左至右如下所示:

5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1 0 0 9 4 8 0 9 1 2 8 5 0 2 5 3 3

现在他想要从这个数组中寻找一些满足以下条件的子序列:

子序列的长度为 8;
这个子序列可以按照下标顺序组成一个 yyyymmdd 格式的日期,并且要求这个日期是 2023 年中的某一天的日期,例如 20230902,20231223。yyyy 表示年份,mm 表示月份,dd 表示天数,当月份或者天数的长度只有一位时需要一个前导零补充。
请你帮小蓝计算下按上述条件一共能找到多少个不同 的 2023 年的日期。对于相同的日期你只需要统计一次即可。

a = [5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7, 5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9, 2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6, 8, 6, 3, 3, 8, 5, 1, 6, 3, 4, 6, 7, 0, 7, 8, 2, 7, 6, 8, 9, 5, 6, 5, 6, 1, 4, 0, 1, 0, 0, 9, 4, 8, 0, 9, 1, 2, 8, 5, 0, 2, 5, 3, 3]

t = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 月份对应的天数
s = set() # 存储符合条件的日期

for i in range(100-7):
    if a[i] != 2:
        continue
    for j in range(i+1, 100-6):
        if a[j] != 0:
            continue
        for k in range(j+1, 100-5):
            if a[k] != 2:
                continue
            for l in range(k+1, 100-4):
                if a[l] not in [3, 4]:
                    continue
                for m in range(l+1, 100-3):
                    month = a[m] * 10 + a[m+1]
                    if month < 1 or month > 12:
                        continue
                    for n in range(m+2, 100-2):
                        day = a[n] * 10 + a[n+1]
                        if day < 1 or day > t[month]:
                            continue
                        date_str = "{:04d}{:02d}{:02d}".format(2023, month, day)
                        s.add(date_str) # 将符合条件的日期添加到集合中

# 输出符合条件的日期数量
print(len(s))
for date_str in s:
    print(date_str)
  1. 定义了一个名为 a 的列表,包含了 100 个数字;
  2. 定义了一个名为 t 的列表,包含了每个月的天数;
  3. 定义了一个名为 s 的集合,用于存储符合条件的日期;
  4. 使用 for 循环对 a 列表进行遍历,从第一个位置开始到第 94 个位置(如下计算,100-7=93);
  5. 每次循环判断当前位置是否为数字 2,若不是则跳过此次循环;
  6. 使用嵌套的 for 循环依次遍历 a[i+1:]、a[j+1:]、a[k+1:]、a[l+1:]、a[m+2:] 列表;
  7. 在循环中判断 a[j] 是否等于数字 0,a[k] 是否等于数字 2,a[l] 是否为 3 或 4,a[m] 和 a[m+1] 表示的月份是否为合法的月份,a[n] 和 a[n+1] 表示的日期是否在合法的范围内;
  8. 若以上所有条件都满足,则将当前日期添加到集合 s 中;
  9. 最后输出集合 s 的大小,即符合条件的日期数量。

先使用 for 循环遍历了 a 中从 l+1100-3 位置的所有元素。然后,将第 m 和 m+1 个位置上的数字通过乘以 10 相加,得到了一个两位数表示的月份。

接下来,使用 if 语句对这个月份进行判断。如果它小于 1 或大于 12,则说明这不是一个合法的月份,应该跳过此次循环,继续下一次循环。这一步的目的是为了减少后续的计算量,并且只保留在 1 到 12 范围内的合法月份。

总之,这段代码的作用是根据前面的条件判断,判断某个两位数字是否代表一个合法的月份,若否则跳过本次循环,进入下一次循环。

结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cubase elements12中文免费版 详细安装流程

cubase9免费版下载是由Steinberg公司开发的一款音乐制作软件&#xff0c;具有音频编辑处理、多轨录音缩混、视频配乐及环绕声处理等功能&#xff0c;对作曲家和混合工程师来说十分好用&#xff0c;可以大大提高编辑效率&#xff0c;需要的朋友赶快下载吧&#xff01; 软件地址&…

【Shell-HDFS】使用Shell脚本判断HDFS文件、目录是否存在

【Shell-HDFS】使用Shell脚本判断HDFS文件、目录是否存在 1&#xff09;文档编写目的2&#xff09;测试原理3&#xff09;Shell脚本测试3.1.测试路径是否存在3.2.测试目录是否存在3.3.测试文件是否存在3.4.测试路径大小是否大于03.5.测试路径大小是否等于0 4&#xff09;总结 1…

调节磁盘和CPU的矛盾-InnoDB的Buffer

一、缓存的重要性 所以 InnoDB 存储引擎在处理客户端的请求时&#xff0c;当需要访问某个页的数据时&#xff0c;就会把完整的页的数据全部加载到内存中&#xff0c;也就是说即使我们只需要访问一个页的一条记录&#xff0c;那也需要先把整个页的数据加载到内存中。将整个页加…

十大排序总结

十大排序 稳定性 有一个数组,3,2,3,4,1 我们把第一个3标记为黑色 第二个3标记为红色 如果排序之后,黑色的3仍在红色3前边,我们就认为这个排序是稳定的 如果红色3在黑色3前面,我们就认为这个排序是不稳定的 插入排序 直接插入排序 想象斗地主时咋摸牌的,保证有序 import…

【Linux系统】Linux文件系统与日志分析

文件系统与日志分析 一、inode与block1.1inode和block概述1.2inode包含文件的元信息1.3Linux系统文件的三个主要时间属性1.4用户通过文件名打开文件的过程1.5inode的大小1.6模拟磁盘ionde用完 二、日志文件2.1日志的功能2.2日志文件的分类2.2.1内核及系统日志2.2.2用户日志2.2.…

深入理解Linux文件系统和日志分析

目录 一、inode于block 1&#xff09;inode于block概述 2&#xff09;inode的内容 inode包含文件的元信息 用stat命令可以查看某个文件的inode信息 Linux系统文件三个主要的时间属性 目录文件的结构 用户通过文件名打开文件时&#xff0c;系统内部的过程 查看inode号码…

5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)

综合案例2.0 - 蓝牙遥控小车4- 体感控制成品展示案例说明器件说明小车连线小车源码遥控手柄遥控器连线遥控器代码1.摇杆PS2模块说明2.六轴MPU-6050说明成品展示 案例说明 用STM32单片机做了一辆蓝牙控制的麦轮小车&#xff0c;分享一下小车的原理和制作过程。 控制部分分为手机…

POSTGRESQL LINUX 与 PG有关的内存参释义

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

阿里阿里,搞不定政企

如果我们问一位关注科技产业&#xff0c;或者关注云计算、AI技术的朋友&#xff0c;4月11日的阿里云北京峰会上讲了什么。他应该马上会说&#xff0c;发布了通义千问啊。 这话确实没错。但仔细观察这场会&#xff0c;却会发现一个问题&#xff1a;嘉宾好像不太对。 AI与大模型活…

代码随想录训练营day48|198、打家劫舍;213、打家劫舍II;337、打家劫舍III

198、打家劫舍 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个…

HelloWorld案例详解

HelloWorld案例的编写和执行 Java程序开发运行流程 开发Java程序&#xff0c;需要三个步骤&#xff1a; ●编写代码 ●编译代码 ●运行代码 HelloWorld案例的编写 新建文本文档文件&#xff0c;修改名称为HelloWorld.java用记事本打开HelloWorld.java文件&#xff0c;输写…

如何理解样本统计量?

本期介绍样本统计量是怎么算的&#xff0c;并用Python来模拟随机抽样。用一个在鱼塘捞鱼的简单例子来理解样本均值的概念。 如何理解重复试验&#xff1f; 指能够在完全相同条件下进行多次的试验&#xff1b; 比如我们抛10枚硬币&#xff0c;用来计算正面出现的概率&#xff…

(6) 聚类算法KMeans(案例:矢量量化的降维)

文章目录 理论知识1 sklearn.cluster.KMeans1.1 参数n_clusters1.1.1 小试牛刀1.1.2 模型评估指标轮廓系数Calinski-Harabaz Index 1.1.3 案例&#xff1a;基于轮廓系数来选择n_clusters 1.2 参数init & random_state & n_init&#xff1a;初始质心怎么放好?1.3 重要参…

二:伙伴系统

内核空间内存分配 目录 内核空间内存分配 伙伴系统 首先从内核空间开始&#xff0c;讲解内存管理模式。 主要分为三种方式&#xff1a; 这篇文章我们集中注意于伙伴系统 伙伴系统 解决了外部碎片问题&#xff0c;针对大块内存分配设计 Linux中的内存管理的“页”大小为4…

java中使用Redis实现分布式锁

前言 目前很多大型的互联网公司后端都采用了分布式架构来支撑前端应用&#xff0c;其中服务拆分就是分布式的一种体现&#xff0c;既然服务拆分了&#xff0c;那么多个服务协调工作就会出现一些资源竞争的情况。比如多个服务对同一个表中的数据进行处理。容易出现类似多线程的…

linux中,和,|和||区别

1、& 表示任务在后台执行&#xff0c;比如运行一个jar文件&#xff0c;但是希望是后台运行可以执行 java -jar test.jar & 2、&& 表示前一条命令执行成功时&#xff0c;才执行后一条命令 &#xff0c;如 echo step1‘ && echo ‘step2’ step1执行成功…

Java语法理论和面经杂疑篇《十二. JDK8 - 17新特性》

第18章_JDK8-17新特性&#xff08;下&#xff09; 6. 新语法结构 新的语法结构&#xff0c;为我们勾勒出了 Java 语法进化的一个趋势&#xff0c;将开发者从复杂、繁琐的低层次抽象中逐渐解放出来&#xff0c;以更高层次、更优雅的抽象&#xff0c;既降低代码量&#xff0c;又…

美颜SDK的优化方法:实现高效、快速、精准的美颜处理

时下&#xff0c;美颜相机、美颜软件等美颜处理应用也越来越受到用户的欢迎。美颜SDK是一种为移动应用提供美颜处理能力的开发工具包&#xff0c;可以帮助开发者快速实现美颜功能&#xff0c;提升应用的用户体验。但是&#xff0c;如何实现高效、快速、精准的美颜处理&#xff…

【spring-boot-seckill分布式秒杀系统 v1.0】java秒杀系统源码

spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统&#xff0c;项目案例基本成型&#xff0c;逐步完善中。 开发环境&#xff1a; JDK1.8、Maven、Mysql、IntelliJ IDEA、SpringBoot1.5.10、zookeeper3.4.6、kafka_2.11、redis-2.8.4、cur…

设计模式-创建型模式之抽象工厂模式(Abstract Factory)

4.抽象工厂模式(Abstract Factory)4.1. 模式动机在工厂方法模式中具体工厂负责生产具体的产品&#xff0c;每一个具体工厂对应一种具体产品&#xff0c;工厂方法也具有唯一性&#xff0c;一般情况下&#xff0c;一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时…