蓝桥杯 试题G 回文日期 Python 枚举法

简介: 蓝桥杯 试题G 回文日期 Python 枚举法

距离蓝桥杯69天


如果你能看到这里说明你一定是一个在认真备战的好孩子


今天的题目来自于2020年蓝桥杯的试题G 分值20 拿下!


话不多说 上满分证明:


489403eb2c13491ab16ea5592e9c4a5c.pnga081e5da9af74b8ba3e2e911b3ce98f0.png

52df0ef8c6444980a6fff96d998dfb10.png

代码设计思路:根据测样的范围 枚举出大致范围内所有的回文数


遍历它 找到第一个大于N的数字 输出


找到第一个大于N且符合ABABBABA的数字(B!=A) 输出


思路非常简单


现在关键在于 我们要怎么枚举呢?


首先 日期一定要合法 有以下标准:大月不超过31天 小月不超过30天


闰年(可以被400整除的年份)2月不超过29天 非闰年2月不会超过28天


由于回文数左右对称 我们需要关注前4位


其次根据数据范围10000101<=N<=89991231


如果N=10000101 答案一定大于10000000


如果N=89991231 答案一定小于99999999


因此对于前4位 我们需要遍历(1000,9999)来创建合法的回文日期数的列表


答案一定落在列表这个里面

a=['01','02','03','04','05','06','07','08','09','10','11','12']#月份
b=['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']#日期
s=[]
for i in range(1000,9999):
    if str(i)[::-1][:2] in a and str(i)[::-1][2:] in b:
        s.append(str(i)+str(i)[::-1])
for i in s:#去除不合法二月日期
    if i[4:6]=='02':
        if int(i)%400!=0 and int(i[6:])>28:
            s.remove(i)
        if int(i)%400==0 and int(i[6:])>29:
            s.remove(i)
big=['01','03','05','07','08','10','12']
small=['02','04','06','09','11']
for i in s:#去除不合法大小月
    if i[4:6] in small and int(i[6:])>30:
        s.remove(i)
    if i[4:6] in big and int(i[6:])>31:
        s.remove(i)
N=int(input())
for i in s:
    if int(i)>N:
        print(i)
        break
for j in s:
    if int(j)>N and j[:2]==j[2:4] and j[0]!=j[1]:
        print(j)
        break

最近疫情有点严重减少出门 在家好好刷题

备战蓝桥杯 acwing,leedcode,蓝桥官网都是不错的

      乾坤未定 你我皆是蓝桥黑马

相关文章
|
4天前
|
Python
「Python系列」Python 日期和时间
Python 提供了多个内置模块来处理日期和时间,其中最常用的是 `datetime` 模块。这个模块提供了类来操作日期、时间、日期和时间间隔。
18 0
|
1月前
|
Unix 数据处理 Python
Python中日期时间的处理
Python中日期时间的处理
21 0
|
3月前
|
编译器 Python
Python关于日期的记录
Python关于日期的记录
16 0
|
1月前
|
安全 Python
Python如何使用datetime模块进行日期和时间的操作
Python如何使用datetime模块进行日期和时间的操作
21 1
|
1月前
|
Python
Python中检查一个字符串是否为回文
Python中检查一个字符串是否为回文
50 0
|
1月前
|
开发者 Python
Python生成日期和时间
Python生成日期和时间
15 0
|
2月前
|
存储 Python
用Python提取长时间序列遥感文件中缺失文件所对应的日期
【2月更文挑战第1天】本文介绍批量下载大量多时相的遥感影像文件后,基于Python语言与每一景遥感影像文件的文件名,对这些已下载的影像文件加以缺失情况的核对,并自动统计、列出未下载影像所对应的时相的方法~
用Python提取长时间序列遥感文件中缺失文件所对应的日期
|
2月前
|
BI Python
Python获取上个月最后一天的日期
Python获取上个月最后一天的日期
35 0
Python获取上个月最后一天的日期
|
3月前
|
Python
Python 时间日期处理库函数
Python 时间日期处理库函数
53 0
Python 时间日期处理库函数
|
3月前
|
Rust
Rust 编程小技巧摘选(8)
Rust 编程小技巧摘选(8)
62 0
Rust 编程小技巧摘选(8)