Contexte
Un mot Lyndon est une chaîne non vide qui est strictement lexicographiquement plus petite que toutes ses autres rotations. Il est possible de factoriser n'importe quelle chaîne uniquement comme la concaténation des mots de Lyndon de telle sorte que ces sous-mots sont lexicographiquement non croissants; votre défi est de le faire aussi succinctement que possible.
Détails
Vous devez implémenter une fonction ou un programme qui énumère la factorisation des mots Lyndon de toute chaîne ASCII imprimable, dans l'ordre, en sortant les sous-chaînes résultantes sous la forme d'un tableau ou d'un flux quelconque. Les caractères doivent être comparés par leurs points de code, et toutes les méthodes d'entrée et de sortie standard sont autorisées. Comme d'habitude pour le code-golf , le programme le plus court en octets l'emporte.
Cas de test
'' []
'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']
la source
<=
ness. (Je ne sais pas comment mieux l'exprimer: |)Réponses:
Pyth,
1716 octets-1 octet grâce à isaacg!
Essayez-le en ligne!
Explication
la source
hf!ff>Y>YZUYT+./
représente le cas de chaîne vide avec 1 octet de moins.Gelée , 18 octets
Essayez-le en ligne!
la source
Pyth - 28 octets
Suite de tests .
la source