Іноді в коді є списки постійних матриць:
[ [[1, 0],
[0, 1]],
[[1, 0],
[0,-1]],
[[0, 1],
[1, 0]],
[[0,-1],
[1, 0]] ]
Це жахливо використання екранного нерухомості. Я набагато краще написати їх поруч:
[ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Ви побачите, що це все ще синтаксично дійсний вкладений список, він просто більше не прямокутний і має зовсім іншу структуру (зокрема, він стає глибшим щоразу, коли я додаю матрицю, що перевищує 1х1). Однак, все ще можливо реконструювати початковий список матриць із цього нового списку.
Щоб я міг використовувати цей синтаксис у майбутньому, мені потрібно, щоб ви написали якийсь код, який перетворює масиви, записані в горизонтальному розташуванні, у список матриць, які вони представляють.
Щоб переконатися, що відповіді не виконують 2D узгодження шаблону на макеті у вихідному коді, вхід буде наданий як просто об’єкт масиву, або якщо ви будете представляти рядок, він не буде містити пробілів, що вказують на те, як Буквально було написано в коді. Отже, ви отримаєте такий вклад:
[[[1, 0], [[1, 0], [[0, 1], [[0,-1], [0, 1]], [0,-1]], [1, 0]], [1, 0]]]
А висновком повинен бути наступний масив або його рядкове представлення (знову ж, подальший макет не потрібен):
[[[1, 0], [0, 1]], [[1, 0], [0,-1]], [[0, 1], [1, 0]], [[0,-1], [1, 0]]]
Це перша і легша частина виклику з двох частин. У цій, ви можете припустити, що всі матриці є квадратними та мають однакові розміри, і що вони правильно вирівняні поруч. У другій частині ми розслабимо ці припущення.
Правила
Вхід буде вкладеним списком або його канонічним рядковим поданням (на обраній вами мові), і ви повинні вивести результат у тому ж форматі. Результат завжди буде містити щонайменше одну матрицю, а матриць може бути розміром як 1х1. Матриці містять лише (підписані) цілі числа з абсолютним значенням менше 128.
Ви можете написати програму або функцію та використовувати будь-який із стандартних методів отримання вводу та надання виводу.
Ви можете використовувати будь-яку мову програмування , але зауважте, що ці лазівки за замовчуванням заборонені.
Це код-гольф , тому найкоротший вірний відповідь - вимірюється в байтах - виграє.
Випробування
Кожен тестовий випадок має: а) матриці списку, розташовані неподалік одна від одної, як це було б у коді (це не ваш внесок), б) неформатований список без сторонніх пробілів ( це ваш вхід), в) очікуваний вихід.
Pretty: [ [[0]] ]
Input: [[[0]]]
Output: [[[0]]]
Pretty: [ [[-1]], [[0]], [[1]] ]
Input: [[[-1]],[[0]],[[1]]]
Output: [[[-1]],[[0]],[[1]]]
Pretty: [ [[1, 0], [[1, 0], [[0, 1], [[0,-1],
[0, 1]], [0,-1]], [1, 0]], [1, 0]] ]
Input: [[[1,0],[[1,0],[[0,1],[[0,-1],[0,1]],[0,-1]],[1,0]],[1,0]]]
Output: [[[1,0],[0,1]],[[1,0],[0,-1]],[[0,1],[1,0]],[[0,-1],[1,0]]]
Pretty: [ [[1, 0, 0], [[ 127, 63, 31], [[1, 0, 0], [[0, 0, 0],
[0, 1, 0], [ 15, 0, -15], [0, 0, 1], [0, 0, 0],
[0, 0, 1]], [ -31, -63, -127]], [0, 1, 0]], [0, 0, 0]] ]
Input: [[[1,0,0],[[127,63,31],[[1,0,0],[[0,0,0],[0,1,0],[15,0,-15],[0,0,1],[0,0,0],[0,0,1]],[-31,-63,-127]],[0,1,0]],[0,0,0]]]
Output: [[[1,0,0],[0,1,0],[0,0,1]],[[127,63,31],[15,0,-15],[-31,-63,-127]],[[1,0,0],[0,0,1],[0,1,0]],[[0,0,0],[0,0,0],[0,0,0]]]
[([1, 0], [0, 1]), ([1, 0], [0, -1]), ([0, 1], [1, 0]), ([0, -1], [1, 0])]
дійсний вихід для третього тесту? Це змішаний список і кортеж.
[([1,0], ([1, 0}, ...
і це дало б додаткову інформацію.