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']
code-golf
string
combinatorics
user1502040
fonte
fonte
<=
ness. (Eu não tenho idéia de como expressar isso melhor: |)Respostas:
Pitão,
1716 bytes-1 byte graças a isaacg!
Experimente online!
Explicação
fonte
hf!ff>Y>YZUYT+./
é responsável pelo caso de cadeia vazia com 1 byte a menos.Gelatina , 18 bytes
Experimente online!
fonte
Pitão - 28 bytes
Conjunto de Teste .
fonte