解题思路:将可能的年份和可能的日期分两个列表存储,通过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.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论