这个问题的实际运用场景是根据 crontab 的 Log 恢复 Crontab。
现在把需求简化一下:
有一个程序,每一个小时会在 Log 里面打印hit
这个单词,于是 Log 会变成这样:
2018-04-12 10:00:00 hit
2018-04-12 11:00:00 hit
2018-04-12 12:00:00 hit
2018-04-12 13:00:00 hit
2018-04-12 14:00:00 hit
如果一开始不知道这个时间规则,但是通过分析 Log 里面每一条的时间差,就可以知道程序是每小时打印一次。
现在增加了一个需求,在 12 点的时候,每 15 分钟打印一次hit
。于是 Log 就变成了:
2018-04-12 10:00:00 hit
2018-04-12 11:00:00 hit
2018-04-12 12:00:00 hit
2018-04-12 12:15:00 hit
2018-04-12 12:30:00 hit
2018-04-12 12:45:00 hit
2018-04-12 13:00:00 hit
2018-04-12 14:00:00 hit
现在依然不知道这个程序的代码的情况下,如果人眼来看这个 Log,就可以反推出这个 Log 是符合两套时间规则的。一套是每小时打印一次,第二套是在 12 点的时候每 15 分钟打印一次。
现在给你一个 Log,如何用代码来反推出生成这个 Log 有这些时间规则? Log 里面最少有 1 个规则,最多有 10 个规则,而且每个规则打印的内容都不少于 3 行。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.