Ein Lyndon-Wort ist eine Zeichenfolge, die streng lexikografisch kleiner ist als jede ihrer zyklischen Rotationen. Bestimmen Sie bei einer gegebenen Binärzeichenfolge, ob es sich um ein Lyndon-Wort handelt, und zwar in möglichst wenigen Bytes.
Zum Beispiel 001011ist ein Lyndon-Wort. Die unten aufgelisteten Umdrehungen werden erhalten, indem das erste Symbol wiederholt ans Ende bewegt wird.
001011
010110
101100
011001
110010
100101
Von diesen steht die ursprüngliche Zeichenfolge lexikografisch an erster Stelle oder repräsentiert äquivalent die kleinste Binärzahl.
Es 001001ist jedoch kein Lyndon-Wort, da eine seiner Umdrehungen dieselbe ist wie seine selbst, was es für lexikografisch am frühesten bindet.
Eingabe: Eine nicht leere Binärzeichenfolge oder eine Liste von Ziffern 0und 1. Sie dürfen keine Zahlen verwenden, die Sie gerne 5darstellen 101.
Ausgabe: Ein konsistenter Truthy- oder Falsey-Wert, der angibt, ob die Zeichenfolge ein Lyndon-Wort ist.
Built-Ins speziell für Lyndon-Wörter sind nicht zulässig.
Testfälle:
Die Lyndon-Wörter mit einer Länge von bis zu 6 sind:
0
1
01
001
011
0001
0011
0111
00001
00011
00101
00111
01011
01111
000001
000011
000101
000111
001011
001101
001111
010111
011111
Die Nicht-Lyndon-Wörter mit einer Länge von bis zu 4 sind:
00
10
11
000
010
100
101
110
111
0000
0010
0100
0101
0110
1000
1001
1010
1011
1100
1101
1110
1111
Bestenliste:
x, die gleich sindx?