Введение
Массивы также можно рассматривать как поле для прыгающего мяча. Это, конечно, звучит очень расплывчато, поэтому вот пример ввода:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Задача состоит в том, чтобы вывести отклоненные массивы . Они сделаны из диагональных узоров, которые отскакивают по краям поля. Этот путь направлен вверх . Путь для первого отскочившего массива (в котором путь напрямую отскочил от egde):
[1, -, -, -, 5, -, -, -, 9]
[-, 8, -, 6, -, 4, -, 2, -]
[-, -, 3, -, -, -, 7, -, -]
Слева направо, это приведет [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Это наш первый отскочивший массив. Путь ко второму отскочившему массиву:
[-, 2, -, -, -, 6, -, -, -]
[9, -, 7, -, 5, -, 3, -, 1]
[-, -, -, 4, -, -, -, 8, -]
Это приводит к [9, 2, 7, 4, 5, 6, 3, 8, 1]
. Путь к третьему возвращенному массиву:
[-, -, 3, -, -, -, 7, -, -]
[-, 8, -, 6, -, 4, -, 2, -]
[1, -, -, -, 5, -, -, -, 9]
Это приводит к [1, 8, 3, 6, 5, 4, 7, 2, 9]
. Итак, три подпрыгнутых массива :
[1, 8, 3, 6, 5, 4, 7, 2, 9]
[9, 2, 7, 4, 5, 6, 3, 8, 1]
[1, 8, 3, 6, 5, 4, 7, 2, 9]
задача
Если дан хотя бы 1 массив, содержащий только неотрицательные целые числа, причем все массивы имеют одинаковую длину, выведите все отклоненные массивы.
Контрольные примеры
Тестовый пример 1:
Input: Output:
[1, 2, 3, 4, 5] [1, 7, 3, 9, 5]
[6, 7, 8, 9, 0] [6, 2, 8, 4, 0]
Input: Output:
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
Input: Output:
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
[9, 9, 9, 9, 9, 9, 9, 100] [9, 0, 9, 0, 9, 0, 9, 0]
[0, 0, 0, 0, 0, 0, 0, 0] [0, 9, 0, 9, 0, 9, 0, 100]
Input: Output:
[0, 1, 2, 3, 4, 5] [0, 7, 14, 9, 4, 11]
[6, 7, 8, 9, 10, 11] [6, 1, 8, 15, 10, 5]
[12, 13, 14, 15, 16, 17] [12, 7, 2, 9, 16, 11]
Input: Output:
[0, 0, 0, 0, 0, 0] [0, 2, 2, 6, 2, 6]
[1, 2, 3, 4, 5, 6] [1, 0, 3, 2, 5, 2]
[2, 2, 2, 2, 2, 2] [2, 2, 0, 4, 2, 4]
[9, 8, 7, 6, 5, 4] [9, 2, 3, 0, 5, 2]
Это код-гольф , поэтому выигрывает представление с наименьшим количеством байтов!
Ответы:
Pyth, 17 байт
Объяснение:
Попробуй это здесь .
источник
JavaScript (ES6), 70
ТЕСТ
источник
CJam,
3130 байтВвод и вывод в виде списка массивов в стиле CJam.
Проверьте это здесь.
Наиболее определенно пригодный для игры в гольф ...
источник
Желе,
292524 байтаСпасибо за @ Sp3000 за помощь в выводе 5 байтов!
Попробуйте онлайн!
источник
Рубин (2.2.2p95), 124 байта
Это может быть намного лучше. Я разберусь как позже!
источник
Japt,
55494139 байтВау, это было действительно сложно и безумно весело.
Проверьте это онлайн!
Выводы в порядке, обратном примерам. Это немного сломается на входах более 100 массивов; надеюсь, это не имеет большого значения.
Неконкурентная версия, 36 байт
Я реализовал эти две функции числа до вызова:
ò
- так же, какo
, но возвращается[X..Y]
вместо[X..Y)
ó
- так же, какo
, но возвращается[X..X+Y)
вместо[X..Y)
Но из-за неуместного места
0
они глючили и всегда возвращали пустые массивы. Теперь это было исправлено.Проверьте это онлайн!
источник
Python 2,
107106108105104 байта(Отбросил лишних паренов) (Неправильное начальное местоположение (ب_ب)) (уже был список такой длины)
Допустимо, чтобы входные данные были аргументом функции, верно? Это мой первый раз, когда я отправляю свой код для ответа в гольф.
источник
APL, 33 символа
Предположим, что ⎕IO ← 0. Идея состоит в том, что отскакивающее движение может быть получено простым сдвигом вверх матрицы, если исходная матрица увеличивается по первому измерению с обращенной матрицей с ее побритой первой и последней строкой. Графически:
от
В АПЗ
reverse
иupward rotate
те же символ:⊖
.источник
⊃
вместо0⌷
.Clojure, 125 байт
Вау, это накапливаются персонажи довольно быстро.
Просто пытаюсь сохранить байты,
let
определяя часто используемые значения.источник
Желе *, 15 байт
Попробуйте онлайн!
* Более новая версия
источник