fundo
Uma palavra de Lyndon é uma string não vazia, estritamente lexicograficamente menor do que todas as outras rotações. É possível fatorar qualquer string exclusivamente como a concatenação das palavras de Lyndon, de modo que essas subpalavras sejam lexicograficamente não crescentes; seu desafio é fazer isso da maneira mais sucinta possível.
Detalhes
Você deve implementar uma função ou programa que enumere a fatoração da palavra Lyndon de qualquer sequência ASCII imprimível, em ordem, produzindo as substrings resultantes como uma matriz ou fluxo de algum tipo. Os caracteres devem ser comparados por seus pontos de código, e todos os métodos padrão de entrada e saída são permitidos. Como sempre, no code-golf , o programa mais curto em bytes vence.
Casos de teste
'' []
'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. (Eu não tenho idéia de como expressar isso melhor: |)