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