5
グループ化されたカフェの営業時間を示す標識
おそらく、さまざまな店のドアにこれらのサインを見たことがあります。 営業時間 mon-fri 0900-1800 土日1100-1530 ここでのタスクは、週全体の営業時間のリストから、同じ営業時間を持つ連続した日をグループ化するようなサインを生成することです。週は、連続していると見なされるものに対して「ラップアラウンド」することに注意してください。 入力: 月曜日から始まる、週の各日の営業時間を表す7つの要素。 各要素は、XXXX-XXXXという形式の文字列です 入力例: 0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500 入力を配列として送信しても構いません(たとえば、stdinから読み取らない場合は関数への入力として) 出力: 営業時間のリスト。同じ営業時間の連続した日が範囲として表示されます。日曜日(最終日)と月曜日(最初の日)も連続した日であることに注意してください。 前日または後日と営業時間が類似していない日は単独で印刷されます 日は3つの小文字で指定されます:mon tue wed thu fri sat sat sun 入力の最初の要素はmonに、tueの隣などに対応することに注意してください。 営業時間は入力のように表示されます 2つの例 mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630 出力はソートされる必要があるため、範囲は曜日が週の順序で表示されます。月曜日が最初であることが好まれますが、週が終わるため、グループの最初ではない場合があります。したがって、この場合、tueが最初の範囲です。 tue-fri 0900-1800, sat-mon 1100-1500 連続しない限りグループ化しないでください。ここでは水曜日と金曜日の営業時間は同じですが、営業時間の異なる木曜日で区切られているため、単独でリストされています。 mon-tue 1000-1200, …
20
code-golf