基于枚举
数据枚举后,进行 check() 就行
基本思想
由于存在闰年的问题,先定义个月份表
判定,**月份是否越界 闰年是否 日期是否越界**
返回值存入后
进行权值不同的sort() 年,月,日
删除重复
输出
Python3 代码
day = [31,28,31,30,31,30,31,31,30,31,30,31]
def check(y,m,d):
if m <= 12 and m >= 1:
if y >= 60:
y += 1900
else:
y += 2000
day[1] = 28
if y%4 == 0: # 由于只有2000整百,省了百年的判定
day[1] = 29
if d <= day[m-1] and d >= 1:
return [y,m,d]
return 0
y,m,d = map(int,input().split('/'))
line = []
sub = check(y,m,d)
if sub:
line += [sub]
sub = check(d,m,y)
if sub:
line += [sub]
sub = check(d,y,m)
if sub:
line += [sub]
line.sort(key=lambda sub:sub[0]*10000+sub[1]*100+sub[2])
for i in [i for i in range(len(line)-1)]:
if line[i] == line[i+1]:
line.pop(i)
if line[0] == line[1]:
line.pop(0)
break
for sub in line:
print("%d-%02d-%02d"%(sub[0],sub[1],sub[2]))