배경
린든 단어는 엄격하게 모든 다른 회전보다 사전 작은 비어 있지 않은 문자열입니다. Lyndon 단어의 연결로 문자열을 고유하게 고려하여 이러한 하위 단어가 사전 식으로 비 증가되도록 할 수 있습니다. 당신의 도전은 가능한 간결하게 이것을하는 것입니다.
세부
인쇄 가능한 ASCII 문자열의 Lyndon 단어 분해를 열거하는 함수 또는 프로그램을 순서대로 생성하여 결과 하위 문자열을 어떤 종류의 배열 또는 스트림으로 출력해야합니다. 문자는 코드 포인트로 비교해야하며 모든 표준 입력 및 출력 방법이 허용됩니다. 에 대한 평소처럼 코드 골프 바이트 승리의 짧은 프로그램입니다.
테스트 사례
'' []
'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']
관련
—
xnor
이것은
—
CalculatorFeline
<=
ness 로 나누는 것과 같습니다 . (나는 이것을 더 잘 표현하는 방법을 모른다 :)
이것은 첫 번째 문자와 모든 문자의 접두사보다 반복적으로 큰 문자를 취하는 것과 같습니다.
—
xnor
@xnor No. 'abac'는 Lyndon 단어입니다.
—
user1502040 2016 년
@ user1502040 알다시피, 관계는 재미있다. 이것을 잡는 몇 가지 테스트 사례를 추가하는 것이 좋습니다.
—
xnor