解题思路:将可能的年份和可能的日期分两个列表存储,通过date函数判断日期合理性,再将符合条件的日期与年份拼接构造回文日期
注意事项:此代码判断2022年的日期是否合理将其代表为所有年份,可能会在某些闰年时导致少了(2.29),但对于本题没有影响
参考代码:
from datetime import date
n = input()
date_palindrome = []
palindrome_ABAB = []
def isValidDate(year,mouth,day):
try:
date(year,mouth,day)
except:
return False
else:
return True
date_year = []
date_mou_day = []
for i in range(int(n[:4]),9300):
date_year.append(str(i))
for i in range(101,1232):
if i <= 999:
if isValidDate(2022,int(str(i)[0]),int(str(i)[1:])) == True:
date_mou_day.append('0'+str(i))
if i >= 1000:
if isValidDate(2022,int(str(i)[:2]),int(str(i)[2:])) == True:
date_mou_day.append(str(i))
for i in date_mou_day:
if i[::-1] in date_year and int(i[::-1]+i) > int(n):
date_palindrome.append(int(i[::-1]+i))
if i[0] == i[2] and i[1] == i[3]:
palindrome_ABAB.append(int(i[::-1]+i))
date_palindrome.sort()
palindrome_ABAB.sort()
print(date_palindrome[0])
print(palindrome_ABAB[0])
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复