这个问题的实际运用场景是根据 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 行。
1
locktionc OP 我自己想到的办法是先用代码找出很显然的规则。然后把符合这个规则的内容先删掉,然后再接着找。不知道大家有没有其他更好的办法?
|
2
bfdh 2018-04-12 12:11:35 +08:00
小明 8 点出门去上班,9 点到公司,请问小明是以什么交通方式到公司的?
|