Überblick
Einige von Ihnen kennen möglicherweise die Kolakoski-Sequenz ( A000002 ), eine bekannte selbstreferenzielle Sequenz mit der folgenden Eigenschaft:
Es ist eine Sequenz, die nur Einsen und Zweien enthält, und für jede Gruppe von Einsen und Zweien entspricht sie sich selbst, wenn Sie die Länge der Läufe addieren, nur der halben Länge. Mit anderen Worten, die Kolakoski-Sequenz beschreibt die Länge der Läufe in der Sequenz selbst. Dies ist die einzige Sequenz, die dies ausführt, mit Ausnahme der gleichen Sequenz, bei der die erste 1 gelöscht wurde. (Dies gilt nur, wenn Sie sich auf Sequenzen aus 1s und 2s beschränken - Martin Ender)
Die Herausforderung
Die Herausforderung ist, eine Liste von ganzen Zahlen gegeben:
- Ausgang ,
-1wenn die Liste keine Arbeits Präfix der Kolakoski Sequenz ist. - Geben Sie die Anzahl der Iterationen aus, bevor die Sequenz erstellt wird
[2].
Das ausgearbeitete Beispiel
Verwenden Sie das bereitgestellte Bild als Beispiel:
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] # Iteration 0 (the input).
[1,2,2,1,1,2,1,2,2,1,2] # Iteration 1.
[1,2,2,1,1,2,1,1] # Iteration 2.
[1,2,2,1,2] # Iteration 3.
[1,2,1,1] # Iteration 4.
[1,1,2] # Iteration 5.
[2,1] # Iteration 6.
[1,1] # Iteration 7.
[2] # Iteration 8.
Daher ist die resultierende Zahl 8für eine Eingabe von [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1].
9 ist auch in Ordnung, wenn Sie 1-indizieren.
Die Test Suite (Sie können auch mit Unteriterationen testen)
------------------------------------------+---------
Truthy Scenarios | Output
------------------------------------------+---------
[1,1] | 1 or 2
[1,2,2,1,1,2,1,2,2,1] | 6 or 7
[1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] | 8 or 9
[1,2] | 2 or 3
------------------------------------------+---------
Falsy Scenarios | Output
------------------------------------------+---------
[4,2,-2,1,0,3928,102904] | -1 or a unique falsy output.
[1,1,1] | -1
[2,2,1,1,2,1,2] (Results in [2,3] @ i3) | -1 (Trickiest example)
[] | -1
[1] | -1
Wenn Sie verwirrt sind:
Wahrheit: Irgendwann werden zwei erreicht, ohne dass ein Zwischenschritt andere Elemente als 1und enthält 2. -Einkorn Enchanter 20 hours ago
Falsy: Endwert ist nicht [2]. Zwischenbegriffe enthalten etwas anderes als etwas aus der Menge [1,2]. Ein paar andere Dinge, siehe Beispiele.
Dies ist Code-Golf , die niedrigste Byteanzahl ist der Sieger.
[2]bis ich den [2,2,1,1,2,1,2]Testfall gesehen habe.
1und enthält 2.
[1]als Testfall hinzuzufügen .

-1?