Mein kleines Kind hat so ein Spielzeug:
Dieses Spielzeug besteht aus 10 stapelbaren kleinen Eimern, die von 1 (der kleinste) bis 10 (der größte) nummeriert werden. Manchmal macht er kleine Stapel und das Spielzeug endet so:
Wir können die Pfähle wie folgt schematisch darstellen:
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
Oder anders ausgedrückt:
[[4,5],[9,10],[1,2,3],[6,7,8]]
Dieser Satz von Eimern kann leicht wieder gestapelt werden, um den ursprünglichen Satz (das erste Bild) wiederherzustellen, indem Stapel von kleineren Eimern nacheinander in Stapel von größeren Eimern platziert werden:
1 1 6
2 2 7
1 6 3 6 3 8
4 9 2 7 4 9 7 4 9
5 10 3 8 5 10 8 5 10
---------- > [Pile 3 to 1] > ---------- > [Pile 4 to 2] > ---------- > [Pile 1 to 2] > Done!
1 2 3 4 1 2 3 4 1 2 3 4
Trotzdem versucht mein Kind manchmal, Türme zu bauen, oder wirft Eimer weg, und die Stapel werden inkonsistent, und das ursprüngliche Set kann nicht wiederhergestellt werden, indem nur ein Stapel in den anderen gelegt wird. Beispiele hierfür:
[[1,3,2],[4]] (the kid tried to build a tower by placing a bigger bucket
over a smaller one, we would need to reorder the buckets
first)
[[1,3,4],[2]] (the kid left aside an unordered bucket, we would need to remove
bucket #1 from pile #1 before restacking)
[[1,2,3],[5]] (the kid lost a bucket, we need to find it first)
Herausforderung
Geben Sie bei einer Liste von Listen mit ganzen Zahlen, die eine Gruppe von Eimerstapeln darstellen, einen Wahrheitswert zurück, wenn die Listen eine leicht wieder stapelbare Gruppe von Stapeln darstellen, oder in einem anderen Fall Falsch.
- Die Eingabe erfolgt als Liste mit ganzen Zahlen, die die Bereiche von oben nach unten für jeden Stapel darstellen.
- Es wird keine leeren Startstapel geben (Sie werden nicht
[[1,2,3],[],[4,5]]
als Eingabe erhalten). - Die Gesamtzahl der Buckets kann innerhalb eines vernünftigen ganzzahligen Bereichs liegen.
- Mein Kind hat nur einen Satz Eimer, damit es keine doppelten Elemente gibt.
- Sie können zwei beliebige konsistente (und kohärente) Werte für truthy oder falsey auswählen.
- Die Buckets werden mit # 1 bis #N bezeichnet, wobei es sich um
N
die größte Ganzzahl in der Liste der Ganzzahlen handelt. Mein Kind kennt das Konzept der Null immer noch nicht. - Sie können die Eingabe in jedem vernünftigen Format erhalten, sofern es sich um eine Reihe von Eimern handelt. Geben Sie es einfach in Ihrer Antwort an, wenn Sie die Art und Weise ändern, in der Sie die Eingabe erhalten.
- Das ist Code-Golf , also kann das kürzeste Programm / die kürzeste Funktion für jede Sprache gewinnen!
Beispiele
Input: [[4,5],[9,10],[1,2,3],[6,7,8]]
Output: Truthy
Input: [[6,7,8,9,10],[1],[2],[3,4,5],[11,12,13]]
Output: Truthy
Input: [[2,3,4],[1],[5,6,7]]
Output: Truthy
Input: [[1,2],[5,6],[7,8,9]]
Output: Falsey (buckets #3 and #4 are missing)
Input: [[2,3,4],[5,6,7]]
Output: Falsey (bucket #1 is missing)
Input: [[1,3,4],[5,7],[2,6]]
Output: Falsey (non-restackable piles)
Input: [[1,4,3],[2],[5,6]]
Output: Falsey (one of the piles is a tower)