Anda mungkin telah melihat tanda-tanda ini di pintu berbagai toko:
JAM BUKA
mon-fri 0900-1800
sat-sun 1100-1530
Tugas di sini adalah membuat tanda seperti itu, mengelompokkan hari berturut-turut dengan jam buka yang sama, dari daftar jam buka selama seminggu penuh. Perhatikan bahwa minggu "membungkus" untuk apa yang dianggap berturut-turut.
Memasukkan:
- 7 elemen, mewakili jam buka untuk setiap hari dalam seminggu, dimulai dengan hari Senin.
- Setiap elemen adalah string, pada formulir XXXX-XXXX
Input contoh:
0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500- Tidak apa-apa untuk mengirim input sebagai array (misalnya sebagai input ke fungsi jika Anda tidak membaca dari stdin)
Keluaran:
- Daftar jam buka, di mana hari berturut-turut dengan jam buka yang sama ditampilkan sebagai rentang. Perhatikan bahwa hari Minggu (hari terakhir) dan Senin (hari pertama) juga merupakan hari berturut-turut.
- Hari di mana hari itu tidak memiliki jam buka yang sama dengan hari-hari sebelum atau sesudah dicetak dengan sendirinya
- Hari-hari ditentukan sebagai tiga huruf kecil: Senin malam, Minggu
- Ingat bahwa elemen pertama dalam input sesuai dengan mon, di samping sel dll.
- Jam buka ditampilkan seperti pada input
Dua contoh
mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630Outputnya harus disortir, sehingga rentang muncul sesuai urutan hari dalam seminggu. Senin lebih disukai menjadi yang pertama, tetapi mungkin terjadi itu bukan yang pertama dalam suatu kelompok karena minggu itu berakhir. Jadi dalam hal ini sel adalah rentang pertama.
tue-fri 0900-1800, sat-mon 1100-1500Jangan berkelompok kecuali berturut-turut, di sini Rabu dan Jumat memiliki jam buka yang sama tetapi dipisahkan oleh hari Kamis dengan jam buka yang berbeda sehingga mereka didaftar sendiri.
mon-tue 1000-1200, wed 0900-1500, thu 1000-1800, fri 0900-1500, sat-sun 1000-1500- Outputnya dapat dipisahkan dengan koma sebagai contoh di sini, atau dipisahkan oleh baris baru seperti pada contoh di atas.
Uji kasus
Baris pertama adalah input, baris kedua adalah output yang diharapkan
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
Aturan
Ini adalah kode-golf, jadi jawaban tersingkat dalam byte menang.