题解:蓝桥云课 2096 顺子日期

【题目来源】

蓝桥云课:1.顺子日期 - 蓝桥云课

【题目描述】

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456等。顺子日期指的就是在日期的yyyymmdd表示法中, 存在任意连续的三位数是一个顺子的日期。例如20220123就是一个顺子日期,因为它出现了一个顺子:123;而20221023则不是一个顺子日期,它一个顺子也没有。小明想知道在整个2022年份中,一共有多少个顺子日期?

【代码详解】

image

ans = 0  # 定义统计结果,初始为0
for i in range(20220101, 20221231+1):  # 遍历2022年所有日期
    q = i//1000%10  #得到个十百千4个数位的数
    b = i//100%10
    s = i//10%10
    g = i%10
    if ((b+1==s and s+1==g) or (q+1==b and b+1==s)) and s*10+g<=31:  # 千百十是顺子,或者百十个是顺子,注意个十两位的数不能超过31
        ans+=1  # 符合条件的自增1 
print(ans)  # 打印结果
# 课堂笔记
import datetime
start = datetime.date(2022, 1, 1)
end = datetime.date(2022, 12, 31)
ans = 0
while True:
    now = start.strftime("%Y%m%d")
    if "012" in now or "123" in now:
        ans += 1
    start += datetime.timedelta(days=1)
    if start>end:
        break
print(ans)

【运行结果】

14
posted @ 2026-03-04 10:16  团爸讲算法  阅读(1)  评论(0)    收藏  举报