题目 3393:

蓝桥杯2026年第十七届省赛真题-连续打卡

 时间限制: 1s 内存限制: 128MB

题目描述

小明是一个自律的程序员,他每天都在使用一款学习打卡 APP 记录自己 的学习情况。APP 会记录他每次打卡的日期,现在小明想要统计自己的最长连 续打卡天数。 

连续打卡是指在连续的若干天内每天都有打卡记录。例如,如果小明在 2026-01-01、2026-01-02、2026-01-03 都有打卡,那么这就是连续 3 天 打卡。 给定小明的打卡记录(若干个日期),请帮他计算最长连续打卡天数。 

注意:若所有打卡日期互不相邻,则最长连续打卡天数为 1;即单独一天 也视为连续 1 天。 

注意:打卡记录可能有重复(同一天多次打卡),同一天多次打卡只算一 天。

输入格式

第一行包含一个整数 N,表示打卡记录的数量。 接下来 N 行,每行包含一个日期,格式为 YYYY-MM-DD(年 -月 -日)。

输出格式

输出一个整数,表示最长连续打卡天数。

样例输入

7
2026-01-01
2026-01-02
2026-01-03
2026-01-05
2026-01-06
2026-01-10
2026-01-02

样例输出

3

提示

【样例说明 1】 

小明的打卡日期去重后为:2026-01-01、2026-01-02、2026-01-03、2026-01- 05、2026-01-06、2026-01-10。 

其中: 

• 2026-01-01 至 2026-01-03 是连续的 3 天; 

• 2026-01-05 至 2026-01-06 是连续的 2 天; 

• 2026-01-10 是单独的 1 天。 因此最长连续打卡天数为 3 天。 

【样例输入 2】 

2025-12-30 

2025-12-31 

2026-01-01 

2026-01-02 

2026-01-03 

【样例输出 2】 

5

【样例说明 2】 

这 5 天是跨年的连续日期,从 2025 年 12 月 30 日到 2026 年 1 月 3 日,共 5 天连续打卡。 

【评测用例规模与约定】 

对于所有评测用例: 

• 1 ≤ N ≤ 100000 ; 

• 日期范围:2000-01-01 至 2099-12-31 ; 

• 保证所有日期都是有效的日期(考虑闰年); 

• 日期可能乱序给出,也可能有重复。


【测试数据范围】

30%的数据,1 ≤ N ≤ 100

60%的数据,1 ≤ N ≤ 10000

100%的数据,1 ≤ N ≤ 100000

标签