Selbstlimitierende Listen
Stellen Sie sich eine nicht leere Liste L vor, die nichtnegative ganze Zahlen enthält. Ein Lauf in L ist eine zusammenhängende Unterliste gleicher Elemente, die nicht länger gemacht werden kann. Zum Beispiel können die Läufe von [0,0,1,1,3,3,3,2,1,1] sind [0,0], [1,1], [3,3,3], [2 ], [1,1] . Die Liste L ist selbstlimitierend, wenn für jede ganze Zahl N ≥ 1 die Anzahl der Vorkommen von N kleiner oder gleich der Anzahl der Durchläufe von N-1 ist . Die obige Liste ist nicht selbstlimitierend, da es 4 Vorkommen von 1 gibt , sondern nur einen Lauf von 0 s.
Hier ist ein Beispiel einer selbstlimitierenden Liste: [0,0,3,4,1,0,2,1,1,0,2,1,0,0,0,1,0] . Es hat
- 5 Läufe von 0 und 5 Vorkommen von 1 ,
- 4 Läufe von 1 und 2 Vorkommen von 2 ,
- 2 Läufe von 2 und 1 Auftreten von 3 ,
- 1 Lauf von 3 und 1 Auftreten von 4 ,
- 1 Lauf von 4 und keine Vorkommen von 5 ,
- keine Vorkommen von anderen ganzen Zahlen.
Die Aufgabe
Ihre Aufgabe ist es, zu entscheiden, ob eine Liste selbstlimitierend ist. Insbesondere soll Ihre Eingabe eine nicht leere Liste nichtnegativer Ganzzahlen sein. Wenn sich die Liste selbst einschränkt, ist Ihre Ausgabe wahrheitsgetreu. sonst ist es falsch. Eingabe und Ausgabe können in jedem vernünftigen Format erfolgen.
Die niedrigste Byteanzahl in jeder Programmiersprache ist der Gewinner. Standard Code-Golf .
Testfälle
Wahrheitsinstanzen:
[0]
[1,0]
[0,1,1,0,2]
[3,1,1,0,0,2,0,0]
[5,0,4,1,3,0,2,2,0,1,1,1,0]
[0,0,1,1,0,0,1,1,0,0,2,2,0,0]
[6,0,0,0,2,2,1,0,5,0,3,4,0,1,1,1]
[5,0,1,0,0,0,0,4,0,3,1,1,1,2,2,0,0,0,0,0]
[4,5,1,3,2,0,5,2,0,3,0,1,0,1,0,0,0,1,0,0,1,0,3,4,4,0,2,6,0,2,6]
[0,4,1,3,10,6,0,1,3,7,9,5,5,0,7,4,2,2,5,0,1,3,8,8,11,0,0,6,2,1,1,2,0,4]
Falsche Instanzen:
[2]
[1,1,0]
[0,0,1,1,1,0,0,2]
[0,1,0,1,1,2,2,3,0,0,4,6]
[1,1,2,1,2,0,2,0,3,0,0,2,2,1,2,3,2,0,1,1,1,0,0,3,3,0]
[3,4,1,0,0,0,5,5,0,2,2,0,0,0,0,0,2,0,1,1,0,4,3,5,4,3]
[1,0,0,0,2,5,3,1,1,0,3,3,1,3,5,4,0,4,0,0,2,0,2,1,1,5,0,0,2,4,4,0,2,0,1,4,4,2,3,3,5,3,4,0,2,0,5]
[4,3,1,0,0,4,6,6,1,0,1,2,1,3,0,1,0,2,0,3,4,0,2,1,1,3,0,2,2,2,0,5,5,0,5,2,5,5,0,4,3,2,3,1,1,3,5,1,4,1,6,2,6,2,4,0,4,0,4,5,3,3,0,0,6,1,0,0,0,6,2,1,0,1,2,6,2,4]
[5,1,1,1,0,2,0,6,1,0,2,1,2,2,5,3,1,0,0,0,3,2,3,0,1,1,0,1,0,1,1,2,0,6,4,1,2,1,1,6,4,1,2,2,4,0,1,2,2,1,3,0,1,2,0,0,0,2,0,2,2,0,1,0,0,1,3,0,0,0,6,2,0,1,0,1,2,1,1,1,0,4,0,0,5,2,0,0,0,4,1,2,2,2,2,0,5,3,2,4,5,0,5]
[2]
auch, aber solche Fälle sollten falsch sein, ja.