问题描述
2020年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按 yyyymmdd 的格式写成一个8位数是 ,恰好是一个回文数。我们称这样的日期是回文日期。
有人表示 是“千年一遇”的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期: 即2021年12月2日。
也有人表示 并不仅仅是一个回文日期,还是一个 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 型的回文日期: 即2121年12月12日。算不上“千年一遇”,顶多算“千年两遇”。
给定一个8位数的日期,请你计算该日期之后下一个回文日期和下一个 型的回文日期各是哪一天。
输入格式
输入包含一个八位整数 ,表示日期。
输出格式
输出两行,每行1个八位数。
第一行表示下一个回文日期,第二行表示下一个 型的回文日期。
样例输入
20200202
样例输出
20211202
21211212
emmmm python又超时了
import datetime
#判断日期
def isyear(t):
try:
datetime.date(int(t[0:4]),int(t[4:6]),int(t[6:8]))
return True
except:
return False
def iscycle(t): #判断是否回文
if(int(t[0:4])==int(t[len(t)-1:len(t)-5:-1])):
return True
else:
return False
def isABcycle(t): #判断是否ABABBABA
if(t[0]==t[2]==t[5]==t[7] and t[1]==t[3]==t[4]==t[6]):
return True
else:
return False
t=str(input())
a=0
b=0
for i in range(int(t)+1,100000000):
if isyear(str(i)) and iscycle(str(i)):
a=int(i)
break
for j in range(int(t)+1,100000000):
if isyear(str(j)) and isABcycle(str(j)):
b=int(j)
break
print(a)
print(b)