Antecedentes
Una palabra de Lyndon es una cadena no vacía que es estrictamente lexicográfica más pequeña que todas sus otras rotaciones. Es posible factorizar cualquier cadena de forma única como la concatenación de palabras de Lyndon de manera que estas subpalabras no sean lexicográficas; Su desafío es hacer esto de la manera más sucinta posible.
Detalles
Debe implementar una función o programa que enumere la factorización de palabras de Lyndon de cualquier cadena ASCII imprimible, en orden, generando las subcadenas resultantes como una matriz o secuencia de algún tipo. Los caracteres se deben comparar por sus puntos de código, y se permiten todos los métodos de entrada y salida estándar. Como de costumbre para code-golf , gana el programa más corto en bytes.
Casos de prueba
'' []
'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. (No tengo idea de cómo expresar esto mejor: |)