AcWing 466. 回文日期 PY3
原题链接
简单
作者:
徐枫月丶
,
2024-03-21 02:10:58
,
所有人可见
,
阅读 1
'''
麻了 被卡点卡麻了
key: 题目很简单 因为同文日期的存在所以每一年只有一个日期 我们只需要枚举年份
然后把年份颠倒过来变成月日,再判断是否合法 最后还要判断在最后一年的时候范围是否超出
'''
y1, y2 = input(), input()
ans = 0
yy1, yy2 = int(y1[:4]), int(y2[:4])
mouths = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in range(yy1, yy2 + 1):
revDay, mid = 0, i
while mid:
revDay = revDay * 10 + mid % 10
mid //= 10
m, d = revDay // 100, revDay % 100
if m == 2 and d == 29:
if i % 400 == 0 or (i % 100 != 0 and i % 4 == 0):
if i == yy2:
if revDay <= int(y1[4:]) and revDay >= int(y2[4:]):
ans += 1
else:
ans += 1
else:
if m <= 12 and mouths[m] >= d:
if i == yy2:
if revDay <= int(y1[4:]) and revDay >= int(y2[4:]):
ans += 1
else:
ans += 1
print(ans)