Мета цього завдання полягає в тому, щоб визначити, чи можна колекцію одновимірних фрагментів викласти плиткою, щоб утворити кінцевий безперервний шматок.
Частина є непустою, кінцева послідовність нулів і одиниць , які починаються і закінчуються в одному. Деякі можливі шматки 1
, 101
, 1111
, 1100101
.
Черепиця означає розташування шматочків таким чином, щоб утворився єдиний суміжний блок з них. Один з одного шматка може займати місце нуля, але не одного, з іншого шматка.
Як рівно, якщо ми розглядаємо один як "твердий матеріал", а нуль - як "отвір", шматки повинні підходити так, щоб утворювати єдину ділянку, не залишаючи жодних отворів.
Щоб утворити плитку, шматки можна переміщувати лише вздовж їх одномірного простору. (Вони не можуть бути розбиті або відображені). Кожен шматок використовується рівно один раз.
Приклади
Три частини 101
, 11
, 101
може бути черепичні , як показано в наступному, де кожна частина представлена з необхідним зсувом:
101
11
101
тому отримана плитка є
111111
Як другий приклад, шматки 11011
та 1001101
їх не можна викладати плиткою. Зокрема, зсув
11011
1001101
не вірно, оскільки стикаються дві; і
11011
1001101
не вірно, оскільки результат міститиме нуль.
Додаткові правила
Введення являє собою набір з однієї або декількох частин. Дозволений будь-який розумний формат; наприклад:
- Список рядків, де кожен рядок може містити два різних послідовні символи;
- Кілька масивів, де кожен масив містить положення одиниць на шматок;
- Список (непарних) цілих чисел, таких як двійкове представлення кожного числа, визначає фрагмент.
Вихід повинен бути значенням truthy , якщо плиткові можна і falsy значення в іншому випадку. Вихідні значення не повинні відповідати; тобто вони можуть бути різними для різних входів.
Програми або функції дозволені на будь- якій мові програмування . Стандартні лазівки заборонені.
Виграє найкоротший код у байтах.
Тестові справи
Кожен вхід знаходиться в іншому рядку
Truthy
1
111
1, 1
11, 111, 1111
101, 11, 1
101, 11, 101
10001, 11001, 10001
100001, 1001, 1011
10010001, 1001, 1001, 101
10110101, 11001, 100001, 1
110111, 100001, 11, 101
1001101, 110111, 1, 11, 1
Фальсі
101
101, 11
1, 1001
1011, 1011
11011, 1001101
1001, 11011, 1000001
1001, 11011, 1000001, 10101
101101
були б непростими, хоча жодна обмежена кількість з них не призводить до суміжного блоку.