sfondo
Una parola Lyndon è una stringa non vuota che è strettamente lessicograficamente più piccola di tutte le altre sue rotazioni. È possibile considerare qualsiasi stringa in modo univoco come la concatenazione delle parole di Lyndon in modo tale che queste parole secondarie siano lessicograficamente non crescenti; la tua sfida è di farlo nel modo più breve possibile.
Dettagli
È necessario implementare una funzione o un programma che enumera la fattorizzazione in parole Lyndon di qualsiasi stringa ASCII stampabile, in ordine, producendo le sottostringhe risultanti come una matrice o un flusso di qualche tipo. I caratteri devono essere confrontati con i loro punti di codice e sono consentiti tutti i metodi di input e output standard. Come al solito per il code-golf , vince il programma più breve in byte.
Casi 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']
<=
ness. (Non ho idea di come esprimerlo meglio: |)