Ліндон слово є рядком , яка є строго лексикографічно менше , ніж будь-який з його циклічних обертань. Давши двійковий рядок, визначте, чи це слово Ліндона в якомога менше байтах.
Наприклад, 001011це слово Ліндона. Його обертання, перелічені нижче, отримуються шляхом багаторазового переміщення першого символу до кінця.
001011
010110
101100
011001
110010
100101
З них початковий рядок надходить лексикографічно першим, або рівнозначно, являє собою найменше двійкове число.
Однак 001001це не слово Ліндона, оскільки одне з його обертань є таким самим, як і воно, що пов’язує його з лексикографічно ранніми ознаками.
Введення: Непорожній двійковий рядок або список цифр 0і 1. Ви не можете використовувати цифри, як 5представити 101.
Вихід: Послідовне значення Truthy або Falsey, яке говорить, чи є рядок словом Ліндона.
Вбудовані спеціально для слів Ліндона заборонені.
Тестові приклади:
Словами Ліндона довжиною до 6 є:
0
1
01
001
011
0001
0011
0111
00001
00011
00101
00111
01011
01111
000001
000011
000101
000111
001011
001101
001111
010111
011111
Нелінонські слова довжиною до 4:
00
10
11
000
010
100
101
110
111
0000
0010
0100
0101
0110
1000
1001
1010
1011
1100
1101
1110
1111
Табло:
xщо дорівнюютьx?