Moje małe dziecko ma taką zabawkę:
Ta zabawka składa się z 10 małych wiader, które można ustawiać jeden na drugim, które będziemy numerować od 1 (najmniejszy) do 10 (największy). Czasami robi małe stosy, a zabawka kończy się w ten sposób:
Możemy przedstawić schematyczne stosy w następujący sposób:
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
Lub inaczej:
[[4,5],[9,10],[1,2,3],[6,7,8]]
Ten zestaw stosów łyżek można łatwo odtworzyć w celu odtworzenia oryginalnego zestawu (pierwszy obraz), po prostu umieszczając stosy mniejszych wiader wewnątrz stosów większych wiader:
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
Niemniej jednak czasami moje dziecko próbuje budować wieże lub wyrzuca wiadra, a stosy stają się niespójne, a oryginalnego zestawu nie można odbudować tylko przez umieszczenie jednego stosu w drugim. Przykłady tego:
[[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)
Wyzwanie
Biorąc pod uwagę listę liczb całkowitych reprezentujących zestaw stosów kubełkowych, zwróć prawdziwą wartość, jeśli listy reprezentują zestaw łatwych do odtworzenia stosów, lub falsey w każdym innym przypadku.
- Dane wejściowe zostaną podane w postaci list liczb całkowitych reprezentujących segmenty od góry do dołu dla każdego stosu.
- Nie będzie pustych stosów początkowych (nie dostaniesz ich
[[1,2,3],[],[4,5]]
jako danych wejściowych). - Całkowita liczba segmentów może być dowolna w rozsądnym zakresie liczb całkowitych.
- Moje dziecko ma tylko jeden zestaw wiader, więc nie będzie duplikatów.
- Możesz wybrać dowolne dwie spójne (i spójne) wartości dla wartości true lub falsey.
- Wiadra będą oznaczone od # 1 do # N, będąc
N
największą liczbą całkowitą na listach liczb całkowitych. Moje dziecko wciąż nie zna pojęcia zera. - Możesz otrzymać dane wejściowe w dowolnym rozsądnym formacie, o ile reprezentuje zestaw stosów wiader. Po prostu określ to w swojej odpowiedzi, jeśli zmienisz sposób odbierania danych wejściowych.
- To jest golf golfowy , więc może wygrać najkrótszy program / funkcja dla każdego języka!
Przykłady
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)