Một từ Lyndon là một chuỗi nhỏ hơn về mặt từ vựng so với bất kỳ phép quay tuần hoàn nào của nó. Đưa ra một chuỗi nhị phân, xác định xem đó có phải là một từ Lyndon trong càng ít byte càng tốt không.
Ví dụ, 001011
là một từ Lyndon. Các phép quay của nó, được liệt kê dưới đây, có được bằng cách liên tục di chuyển biểu tượng đầu tiên đến cuối.
001011
010110
101100
011001
110010
100101
Trong số này, chuỗi gốc xuất hiện trước tiên về mặt từ vựng, hoặc tương đương, đại diện cho số nhị phân nhỏ nhất.
Tuy nhiên, đó 001001
không phải là một từ Lyndon bởi vì một trong những phép quay của nó giống với chính nó, nó liên kết nó với từ vựng sớm nhất.
Dữ liệu vào: Một chuỗi nhị phân không trống hoặc danh sách các chữ số 0
và 1
. Bạn không thể sử dụng số, muốn 5
đại diện 101
.
Đầu ra: Một giá trị Truthy hoặc Falsey nhất quán cho biết chuỗi đó có phải là từ Lyndon hay không.
Xây dựng đặc biệt cho các từ Lyndon không được phép.
Các trường hợp thử nghiệm:
Các từ Lyndon có độ dài lên đến 6 là:
0
1
01
001
011
0001
0011
0111
00001
00011
00101
00111
01011
01111
000001
000011
000101
000111
001011
001101
001111
010111
011111
Các từ không phải Lyndon có độ dài lên đến 4 là:
00
10
11
000
010
100
101
110
111
0000
0010
0100
0101
0110
1000
1001
1010
1011
1100
1101
1110
1111
Bảng xếp hạng:
x
nào bằngx
?