Bạn có thể đã nhìn thấy những dấu hiệu này trên cửa của các cửa hàng khác nhau:
GIỜ MỞ CỬA
mon-fri 0900-1800
sat-sun 1100-1530
Nhiệm vụ ở đây là tạo ra một dấu hiệu như vậy, nhóm các ngày liên tiếp với cùng giờ mở cửa, từ danh sách giờ mở cửa cho cả tuần. Lưu ý rằng tuần "kết thúc tốt đẹp" cho những gì được coi là liên tiếp.
Đầu vào:
- 7 yếu tố, đại diện cho giờ mở cửa cho mỗi ngày trong một tuần, bắt đầu từ thứ Hai.
- Mỗi phần tử là một chuỗi, trên biểu mẫu XXXX-XXXX
Ví dụ đầu vào:
0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500- Bạn có thể gửi đầu vào dưới dạng một mảng (ví dụ như đầu vào cho hàm nếu bạn không đọc từ stdin)
Đầu ra:
- Một danh sách các giờ mở cửa, trong đó các ngày liên tiếp có cùng giờ mở cửa được hiển thị dưới dạng một phạm vi. Lưu ý rằng chủ nhật (ngày cuối cùng) và thứ hai (ngày đầu tiên) cũng là những ngày liên tiếp.
- Một ngày mà ngày không có giờ mở cửa tương tự như ngày trước hoặc sau được in
- Ngày được chỉ định là ba chữ cái viết thường: mon tue wed thu fri sat sun
- Hãy nhớ rằng phần tử đầu tiên trong đầu vào tương ứng với mon, bên cạnh tue, v.v.
- Giờ mở cửa được hiển thị như trong đầu vào
Hai ví dụ
mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630Đầu ra phải được sắp xếp, để các phạm vi xuất hiện theo thứ tự các ngày làm trong tuần. Thứ hai được ưu tiên là đầu tiên, nhưng có thể xảy ra nó không phải là đầu tiên trong một nhóm vì tuần kết thúc tốt đẹp. Vì vậy, trong trường hợp này, tue là phạm vi đầu tiên.
tue-fri 0900-1800, sat-mon 1100-1500Đừng nhóm trừ khi liên tiếp, ở đây thứ tư và thứ sáu có cùng giờ mở cửa nhưng được phân tách vào thứ năm với giờ mở cửa khác nhau để chúng được liệt kê bởi chính họ.
mon-tue 1000-1200, wed 0900-1500, thu 1000-1800, fri 0900-1500, sat-sun 1000-1500- Đầu ra có thể được phân tách bằng dấu phẩy như các ví dụ ở đây hoặc được phân tách bằng một dòng mới như trong ví dụ trên.
Các trường hợp thử nghiệm
Dòng đầu tiên là đầu vào, dòng thứ hai là đầu ra dự kiến
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
Quy tắc
Đây là môn đánh gôn, vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng.