У моєї маленької дитини така іграшка:
Ця іграшка складається з 10 відстійних маленьких відро, яких ми будемо налічувати від 1 (найменшого) до 10 (найбільшого). Іноді він робить невеликі палі, іграшка закінчується так:
Ми можемо схематично зобразити палі таким чином:
1 6
4 9 2 7
5 10 3 8
---------- <-- Floor
1 2 3 4 <-- Pile #
Або, по-іншому:
[[4,5],[9,10],[1,2,3],[6,7,8]]
Цей набір паль відра легко перекомпонувати, щоб відновити початковий набір (перше зображення), лише послідовно розміщуючи палі менших відров усередині паль великих розмірів:
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
Тим не менш, іноді моя дитина намагається будувати вежі або викидає відра, а палі в кінцевому підсумку є непослідовними, і оригінальний набір неможливо відновити, просто помістивши одну купу в іншу. Приклади цього:
[[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)
Виклик
З огляду на список списків цілих чисел, що представляють собою набір паль ковшів, поверніть тритипове значення, якщо списки представляють набір паль, що легко перезавантажуються, або фальси в будь-якому іншому випадку.
- Введення подається у вигляді списку цілих чисел, що представляють відрізки зверху вниз для кожного стека.
- Там не будуть порожніми , починаючи палі (ви не отримаєте в
[[1,2,3],[],[4,5]]
якості вхідних даних). - Загальна кількість відра може бути будь-якою в межах розумного цілого діапазону.
- У моєї дитини є лише один набір відро, щоб не було дублюючих елементів.
- Ви можете вибрати будь-які два послідовних (і когерентних) значення для truthy або falsey.
- Відра будуть позначені від 1 до # N, будучи
N
найбільшим цілим числом у списках цілих чисел. Моя дитина досі не знає поняття нуля. - Ви можете отримувати вхід у будь-якому розумному форматі до тих пір, поки він являє собою набір купи відра. Просто вкажіть це у своїй відповіді, якщо ви зміните спосіб отримання вводу.
- Це код-гольф , тому може виграти найкоротша програма / функція для кожної мови!
Приклади
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)