Loading... ## 题目   ## 思路 因为是回文日期,所以没必要遍历每一天,直接用年份造一个回文日期再判断它是不是一个正确的日期就行了。 吐槽一下这个评测用例的范围,明明说的是10000101<=N<=89991231,于是我设置的最大年份是9000年,结果一直卡在90分,找了半天也没发现问题。最后在机缘巧合之下把范围调成最大9999年就100了,题目范围害人不浅啊。。 ## 题解 ```Python n = str(input()) date1 = 0 date2 = 0 days = [31,28,31,30,31,30,31,31,30,31,30,31] def isLeap(year):#判断是否是闰年 if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: return True else: return False def isDate(date):#判断是否是正确的日期 flag = False if int(date[4:6]) > 0 and int(date[4:6]) <= 12: if int(date[4:6]) == 2 and isLeap(int(date[0:4])): if int(date[6:8]) > 0 and int(date[6:8]) <= 29: flag = True elif int(date[6:8]) > 0 and int(date[6:8]) <= days[int(date[4:6]) - 1]: flag = True return flag for i in range(int(n[0:4]),9999): date = str(i) + str(i)[::-1] if isDate(date) and int(date) > int(n): date1 = date break for i in range(int(n[0:4]),9999): date = str(i) + str(i)[::-1] if isDate(date) and str(i)[0:2] == str(i)[2:4] and int(date) > int(n): date2 = date break print(date1) print(date2) ```  Last modification:March 11, 2022 © Allow specification reprint Support Appreciate the author WeChat Like 0 如果觉得我的文章对你有用,请随意赞赏