Фон
Линдон слово не является пустой строкой , которая является строго лексикографический меньше , чем всеми остальными его вращения. Можно объединить любую строку однозначно как конкатенацию слов Линдона так, что эти подслова лексикографически не увеличиваются; Ваша задача - сделать это как можно более кратко.
подробности
Вы должны реализовать функцию или программу, которая перечисляет факторизацию слова Линдона любой печатаемой строки ASCII, по порядку, выводя результирующие подстроки в виде массива или потока некоторого вида. Символы должны сравниваться по их кодам, и разрешены все стандартные методы ввода и вывода. Как обычно для code-golf , выигрывает самая короткая программа в байтах.
Тестовые случаи
'' []
'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. (