tło
Lyndon słowo jest niepusty ciąg znaków, który jest ściśle leksykograficznie mniejszy niż wszystkich innych swoich obrotów. Możliwe jest uwzględnienie dowolnego łańcucha unikatowo jako konkatenacji słów Lyndona, tak aby słowa te nie leksykograficznie nie zwiększały się; Twoim wyzwaniem jest zrobienie tego tak zwięźle, jak to możliwe.
Detale
Powinieneś zaimplementować funkcję lub program, który wylicza faktoryzację słowa Lyndona dowolnego drukowalnego ciągu ASCII, w celu uzyskania wynikowych podciągów jako tablicy lub strumienia. Znaki powinny być porównywane według ich punktów kodowych i dozwolone są wszystkie standardowe metody wejścia i wyjścia. Jak zwykle dla golfa kodowego , wygrywa najkrótszy program w bajtach.
Przypadki testowe
'' []
'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. (Nie mam pojęcia, jak lepiej to wyrazić: |)