Prawdopodobnie widziałeś te znaki na drzwiach różnych sklepów:
GODZINY OTWARCIA
pn – pt 0900–1800 sob.
-niedz. 1100–1530
Zadanie polega na wygenerowaniu takiego znaku, grupując kolejne dni z tymi samymi godzinami otwarcia, z listy godzin otwarcia na cały tydzień. Zauważ, że tydzień „zawija się”, co jest uważane za kolejne.
Wejście:
- 7 elementów, reprezentujących godziny otwarcia każdego dnia w tygodniu, zaczynając od poniedziałku.
- Każdy element jest ciągiem w postaci XXXX-XXXX
Przykładowe dane wejściowe:
0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500- Można wysłać dane wejściowe jako tablicę (na przykład jako dane wejściowe do funkcji, jeśli nie czytasz ze standardowego wejścia)
Wynik:
- Lista godzin otwarcia, w których kolejne dni z tymi samymi godzinami otwarcia są pokazane jako zakres. Pamiętaj, że niedziela (ostatni dzień) i poniedziałek (pierwszy dzień) to także kolejne dni.
- Dzień, w którym dzień nie ma podobnych godzin otwarcia jak dni przed lub po, jest drukowany sam
- Dni są określone jako trzy małe litery: pon wt śr czw pt sr niedz
- Pamiętaj, że pierwszy element na wejściu odpowiada mon, obok wt itp.
- Godziny otwarcia są pokazane jak na wejściu
Dwa przykłady
mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630Dane wyjściowe należy posortować, aby zakresy były wyświetlane w kolejności dni w tygodniu. Poniedziałek jest preferowany jako pierwszy, ale może się zdarzyć, że nie jest pierwszy w grupie, ponieważ tydzień się kończy. Więc w tym przypadku wt jest pierwszym zakresem.
tue-fri 0900-1800, sat-mon 1100-1500Nie grupuj, chyba że z rzędu, tutaj środa i piątek mają takie same godziny otwarcia, ale są oddzielone czwartkiem z różnymi godzinami otwarcia, więc są one wymienione osobno.
mon-tue 1000-1200, wed 0900-1500, thu 1000-1800, fri 0900-1500, sat-sun 1000-1500- Dane wyjściowe mogą być rozdzielone przecinkami jako przykłady tutaj lub oddzielone znakiem nowej linii, jak w przykładzie na górze.
Przypadki testowe
Pierwszy wiersz jest wprowadzany, drugi wiersz jest oczekiwany
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
Zasady
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach.