Hãy xem xét một mảng các bit, nói
1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0
Chúng ta gọi một phân đoạn liền kề có độ dài ≥ 5 một pha nếu ít nhất 85% các bit giống nhau và các bit đầu tiên / cuối cùng đều bằng bit đa số. Hơn nữa, chúng tôi gọi là cực đại pha nếu nó không phải là phân đoạn nghiêm ngặt của một số pha khác.
Dưới đây là các giai đoạn tối đa của ví dụ trên:
1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0
-------------
-------------
-------------
Như bạn có thể thấy, có những 3
pha tối đa. Mặt khác, điều này
1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0
---------
không phải là một pha tối đa vì nó là một phân đoạn nghiêm ngặt của ít nhất một pha khác.
Các thách thức
Đầu vào là một chuỗi gồm 5 bit thông qua STDIN, dòng lệnh hoặc đối số hàm. Các bit có thể đi vào dưới dạng một chuỗi hoặc một mảng.
Bạn phải xuất một số nguyên duy nhất, số lượng pha tối đa cho mảng, được in qua STDOUT hoặc được trả về từ một hàm.
Chấm điểm
Đây là môn đánh gôn, vì vậy chương trình trong ít byte nhất sẽ thắng.
Các trường hợp thử nghiệm
0 1 0 1 0 -> 0
0 0 0 0 0 -> 1
0 0 0 0 1 0 1 1 1 1 -> 0
0 0 0 0 0 1 0 1 1 1 1 1 -> 2
1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -> 1
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 -> 2
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 -> 1
0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 -> 0
1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 -> 4
0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 -> 5
Đây là lời giải thích cho trường hợp cuối cùng:
0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0
---------------------------
-------------------------
-----------------
-----------------
-------------
Sự thật thú vị: Thách thức này xuất phát từ một vấn đề khai thác dữ liệu với mục tiêu phát hiện sự thay đổi trong dữ liệu tạm thời.
0
và kết thúc ở lần cuối cùng.
1 1 0 1 1
85% của 5 là 4,25, vì vậy độ dài 5 sẽ là không thể hoặc chúng ta nên làm tròn số đó xuống còn 4?