Pertimbangkan array bit, katakanlah
1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0
Kami menyebut subarray yang berdekatan dengan panjang ≥ 5 fase jika setidaknya 85% dari bit adalah sama dan bit pertama / terakhir sama dengan bit mayoritas. Selain itu, kami memanggil fase maksimal jika itu bukan subarray ketat dari beberapa fase lainnya.
Berikut adalah fase maksimal dari contoh di atas:
1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0
-------------
-------------
-------------
Seperti yang Anda lihat, ada 3
fase maksimal. Di sisi lain, ini
1 1 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 0 1 0
---------
bukan fase maksimal karena merupakan subarray ketat setidaknya satu fase lainnya.
Tantangan
Input adalah urutan ≥ 5 bit melalui STDIN, baris perintah atau argumen fungsi. Bit bisa berupa string atau array.
Anda akan menghasilkan bilangan bulat tunggal, jumlah fase maksimal untuk array, baik dicetak melalui STDOUT atau dikembalikan dari suatu fungsi.
Mencetak gol
Ini adalah kode-golf sehingga program dalam byte paling sedikit menang.
Uji kasus
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
Inilah penjelasan untuk kasus terakhir:
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
---------------------------
-------------------------
-----------------
-----------------
-------------
Fakta menyenangkan: Tantangan ini muncul dari masalah penambangan data dengan tujuan mendeteksi perubahan data temporal.
0
dan yang terakhir.
1 1 0 1 1
85% dari 5 adalah 4,25 yang Jadi panjang 5 tidak mungkin atau haruskah kita membulatkannya menjadi 4?