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

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

话不多说 上满分证明:


image.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,蓝桥官网都是不错的


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


目录
相关文章
|
2月前
蓝桥杯真题time模块详解 | 顺子日期 星期一
蓝桥杯真题time模块详解 | 顺子日期 星期一
|
2月前
|
Python
Datetime模块应用:Python计算上周周几对应的日期
Datetime模块应用:Python计算上周周几对应的日期
87 1
|
1月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
125 64
|
1月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
38 6
|
1月前
|
数据挖掘 Python
用Python轻松获取任意月份的公休日期
本文介绍了如何使用Python的`calendar`和`datetime`模块轻松获取任意月份的公休日期,包括周六和周日。通过示例代码,用户可以输入年份和月份,程序将输出该月份的所有公休日。这对于安排会议、规划旅行或数据分析都非常有用。
27 3
|
2月前
|
人工智能 Python
蓝桥杯练习题(四):Python组之历届试题三十题
关于蓝桥杯Python组历届试题的三十个练习题的总结,包括题目描述、输入输出格式、样例输入输出以及部分题目的解题思路和代码实现。
51 0
蓝桥杯练习题(四):Python组之历届试题三十题
|
2月前
|
数据挖掘 iOS开发 MacOS
利用Python计算农历日期
利用Python计算农历日期
135 4
|
2月前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
25 1
|
2月前
|
调度 开发者 Python
python超详细的日期操作【建议收藏备用】
python超详细的日期操作【建议收藏备用】
25 0
|
2月前
|
Python
使用python计算两个日期之前的相差天数,周数
使用python计算两个日期之前的相差天数,周数
52 0