Latar Belakang
Sebuah kata Lyndon adalah string non-kosong yang ketat leksikografi lebih kecil daripada semua rotasi lainnya. Dimungkinkan untuk memfaktorkan setiap string secara unik sebagai gabungan kata-kata Lyndon sedemikian rupa sehingga sub-kata ini secara leksikografis tidak meningkat; tantangan Anda adalah melakukan ini sejelas mungkin.
Detail
Anda harus mengimplementasikan fungsi atau program yang menyebutkan faktorisasi kata Lyndon dari string ASCII yang dapat dicetak, untuk menghasilkan substring yang dihasilkan sebagai array atau aliran dari beberapa jenis. Karakter harus dibandingkan dengan poin kode mereka, dan semua metode input dan output standar diperbolehkan. Seperti biasa untuk kode-golf , program terpendek dalam byte menang.
Uji Kasus
'' []
'C' ['C']
'aaaaa' ['a', 'a', 'a', 'a', 'a']
'K| ' ['K|', ' ']
'abaca' ['abac', 'a']
'9_-$' ['9_', '-', '$']
'P&O(;' ['P', '&O(;']
'xhya{Wd$' ['x', 'hy', 'a{', 'Wd', '$']
'j`M?LO!!Y' ['j', '`', 'M', '?LO', '!!Y']
'!9!TZ' ['!9!TZ']
'vMMe' ['v', 'MMe']
'b5A9A9<5{0' ['b', '5A9A9<5{', '0']
<=
ness. (Saya tidak tahu bagaimana mengekspresikan ini dengan lebih baik: |)