蓝桥杯 试题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,蓝桥官网都是不错的

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

相关文章
|
28天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
120 64
|
1月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
35 6
|
28天前
|
数据挖掘 Python
用Python轻松获取任意月份的公休日期
本文介绍了如何使用Python的`calendar`和`datetime`模块轻松获取任意月份的公休日期,包括周六和周日。通过示例代码,用户可以输入年份和月份,程序将输出该月份的所有公休日。这对于安排会议、规划旅行或数据分析都非常有用。
25 3
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
127 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
2月前
|
人工智能 Python
蓝桥杯练习题(四):Python组之历届试题三十题
关于蓝桥杯Python组历届试题的三十个练习题的总结,包括题目描述、输入输出格式、样例输入输出以及部分题目的解题思路和代码实现。
49 0
蓝桥杯练习题(四):Python组之历届试题三十题
|
2月前
|
调度 开发者 Python
python超详细的日期操作【建议收藏备用】
python超详细的日期操作【建议收藏备用】
25 0
|
2月前
|
Python
使用python计算两个日期之前的相差天数,周数
使用python计算两个日期之前的相差天数,周数
52 0
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(二):Python组之基础练习三十题
蓝桥杯Python编程练习题的集合,包含了三十个不同难度的编程题目,覆盖了基础语法、数据结构和算法等领域。
52 0
|
算法 Python
Python双端队列 实现回文检测
双端队列 Deque 是一种有次序的数据集,跟队列相似,其两端可以称作"首" 和 "尾"端,但 Deque 中数据项既可以从队首加入,也可以从队尾加入;数据项也可以从两端移除。某种意义上说,双端队列集成了栈和队列的能力。
183 0
Python双端队列 实现回文检测
|
21天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!