您可能已经在各种商店的门上看到这些标志:
营业时间
周一至周五
0900-1800周日1100-1530
这里的任务是从整个星期的开放时间列表中生成一个类似的符号,将具有相同开放时间的连续天分组。请注意,一周被认为是连续的。
输入:
- 7个元素,代表每周从星期一开始的每天的开放时间。
- 每个元素都是一个字符串,格式为XXXX-XXXX
输入示例:
0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500- 可以将输入作为数组发送(例如,如果您不从stdin中读取,则作为函数的输入)
输出:
- 营业时间列表,其中具有相同营业时间的连续天显示为一个范围。请注意,星期日(最后一天)和星期一(第一天)也是连续的几天。
- 一天的营业时间与之前或之后的日子没有类似的一天是自己打印的
- 将日期指定为三个小写字母:周一周二周三周四周五周日
- 请记住,输入中的第一个元素对应于mon,紧挨着tue等。
- 营业时间如输入所示
两个例子
mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630应该对输出进行排序,以便范围按照星期几的顺序显示。最好将星期一放在首位,但由于一周结束,所以它可能不是分组中的第一位。因此,在这种情况下,周二是第一个范围。
tue-fri 0900-1800, sat-mon 1100-1500除非连续,否则不要分组,这里星期三和星期五的开放时间相同,但是与星期四分隔开的开放时间不同,因此它们是自己列出的。
mon-tue 1000-1200, wed 0900-1500, thu 1000-1800, fri 0900-1500, sat-sun 1000-1500- 输出可以用逗号分隔,例如此处的示例,也可以用换行符分隔,如顶部的示例中所示。
测试用例
输入第一行,输出第二行
0900-1800 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500 1100-1500
mon-fri 0900-1800, sat-sun 1100-1500
0900-1800 0900-1800 0900-1800 0930-1700 0900-1800 1100-1500 1100-1500
mon-wed 0900-1800, thu 0930-1700, fri 0900-1800, sat-sun 1100-1500
1100-1500 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500 1100-1500
tue-fri 0900-1800, sat-mon 1100-1500
1100-1500 1100-1500 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500
wed-sat 0900-1800, sun-tue 1100-1500
1200-1500 1100-1500 0900-1800 0900-1800 0900-1800 0900-1800 1100-1500
mon 1200-1500, tue 1100-1500, wed-sat 0900-1800, sun 1100-1500
规则
这是代码高尔夫球,因此最短的答案以字节为单位。