Ваша задача - принять в качестве входных данных два «ASCII Art» и расположить каждое произведение искусства рядом друг с другом по горизонтали.
Например, скажем, у вас есть две строки, "abc\ndef"
и "123\n456"
. Вам нужно выровнять их по горизонтали, чтобы получить строку "abc123\ndef456
". Я называю это" выравниванием по горизонтали ", потому что в то время как вводимые данные выглядят так:
abc
def
и:
123
456
Вывод при печати будет выглядеть так:
abc123
def456
Обратите внимание, как один вход расположен рядом с другим.
вход
- Входные данные будут строками и могут быть как два отдельных аргумента или как последовательность строк.
- Символы в искусстве будут иметь десятичные коды в диапазоне 32-126 (включительно).
- Хорошо поддерживать произвольное число искусств для выравнивания вместо двух (но, очевидно, вы должны поддерживать как минимум два).
- Можно предположить, что каждое искусство будет иметь одинаковые размеры, и что они будут содержать хотя бы одну строку.
Вы должны быть в состоянии поддерживать как минимум 100x100 персонажей.
Для согласования с соглашениями на сайте порядок аргументов не имеет значения. Неважно, какое искусство слева или справа.
Выход
Выходными данными будут выровненные изображения, как указано выше, либо возвращенные, либо выходные данные на стандартный вывод.
Любой конечный пробел в необязательном порядке.
Не должно быть визуального разделителя между выровненными изображениями.
Искусство ввода и вывода должно быть \n
или \r
разделены строками. Было бы слишком тривиально разрешить 2D-массивы.
Материалы могут быть функциями или полными программами.
Тестовые случаи:
"abc\ndef", "123\n456" -> "abc123\ndef456".
"qwertyuiop\n asdfghjkl", "Some other\nTextFiller" -> "qwertyuiopSome other\n asdfghjklTextFiller"
" * \n *** \n*****\n *** \n * \n", " + \n + \n+++++\n + \n + \n" -> " * + \n *** + \n*****+++++\n *** + \n * + \n"
"|"
или" "
?\r
вместо\n
?Ответы:
Холст , 1 байт
Попробуй это здесь!
источник
Haskell , 37 байт
Попробуйте онлайн!
IO как списки строк просто будет
zipWith(++)
. :Писточник
Python 2 , 59 байт
Попробуйте онлайн!
источник
05AB1E , 6 байтов
Попробуйте онлайн!
объяснение
источник
Желе , 4 байта
Попробуйте онлайн!
источник
Perl 5
-0F
, 28 байтВключает
+2
в качестве\n
аргумента для-F
(это «код», поэтому он должен рассчитывать)Дайте входные данные непосредственно друг за другом на STDIN.
Попробуйте онлайн!
источник
Bash + coreutils, 14
Входные данные задаются в виде двух имен файлов в качестве параметров командной строки.
Попробуйте онлайн .
источник
paste -d "" $@
-d ""
, чтобы попробовать-d""
, что, конечно, ничем не отличается от-d
Perl 6 , 27 байт
Попробуйте онлайн!
Работает с произвольным количеством искусств. IO как список списков был бы просто
&[Z~]
.источник
APL (Dyalog Unicode) , 9 байтов SBCS
Полная программа. Запросы (STDIN) для любого списка
\r
длин строк Струны могут быть неровными и различной ширины, если они имеют одинаковое количество строк. Отпечатки (STDOUT) в результате ASCII ст.Попробуйте онлайн!
⎕
запросить оцененный ввод⎕FMT¨
форматировать (оценивать все управляющие символы и возвращать матрицу символов) каждый,/
объединить их горизонтально (уменьшение сцепления)⊃
раскрыть (потому что снижение понизило рейтинг с 1 до 0)источник
Java 8,
1008478 байтВыход с параметром
ArrayIndexOutOfBoundsException
STDERR после того, как он напечатал результат в STDOUT, что разрешено .-6 байт благодаря @ OlivierGrégoire .
Объяснение:
Попробуйте онлайн.
источник
a->b->{for(int i=0;;)System.out.println(a.split("\n")[i]+b.split("\n")[i++]);}
78 байтов. Ничего не сказано о лишнем побочном эффекте. Таким образом, мы могли бы просто считать, пока не произойдет исключение.Рубин , 48 байтов
Попробуйте онлайн!
Лямбда, берущая две строки и возвращающая строку. Установка
split
разделителя по умолчанию на новую строку с$;=$/;
не сохраняет никаких байтов, но делает остальные выглядят немного лучше.Ruby , 49 байт (произвольно много строк)
Попробуйте онлайн!
Просто для удовольствия. Оказывается, мы можем принять массив строк за дополнительную плату всего 1 байт.
источник
JavaScript (ES6), 51 байт
источник
Чудо , 21 байт
Пример использования:
#n
используется вместо\n
обозначения новой строки.объяснение
Подробная версия:
Разбейте каждую строку во входном массиве по символам новой строки, объедините строку и выведите каждый элемент.
источник
Котлин , 73 байта
Попробуйте онлайн!
источник
Добавить ++ , 24 байта
Попробуйте онлайн!
источник
C 96 байтов
Попробуйте онлайн!
источник
JavaScript (ES6), 52 байта
Принимает ввод в синтаксисе карри
(a)(b)
.Попробуйте онлайн!
источник
Юлия 0,6 , 41 байт
Попробуйте онлайн!
источник
PowerShell ,
5149 байтПопробуйте онлайн!
Принимает ввод как буквенные строки с символами новой строки. Вы также можете использовать
`n
(разделитель новой строки в PowerShell, не\n
вместо этого ).Мы первые
-split
вводим левую строку ввода на новых строках, которая создает массив, и перебираем|%{...}
. На каждой итерации мы объединяем строку с правой входной строкой, снова разбиваемой на новые строки, индексируемыми и увеличивающимися.Они остаются в конвейере, и неявное
Write-Output
завершение дает нам вывод в виде массива строк, которые печатаются с новой строкой между ними.источник
APL (Dyalog Unicode) , 22 байта ( SBCS Адама )
Попробуйте онлайн!
источник
Красный , 78 байт
Попробуйте онлайн!
источник
Japt
-R
,87 байтПопытайся
объяснение
альтернатива
Попытайся
источник
Баш , 92 байта
Попробуйте онлайн!
Ungolfed:
Примеры:
У меня также есть более короткий, но он терпит неудачу, если второй
read
оператор возвращает ненулевое значение.Баш , 55 байт
Примечание:
<&3
похоже, не работает на tio.runЭтот использует файловые дескрипторы (
1
и3
) вместо аргументов:источник
Древесный уголь , 8 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Добавьте 2 байта, чтобы принять несколько входов:
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Добавьте 4 байта, чтобы принять незаполненный ввод:
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
источник
JavaScript (Node.js) , 79 байт
Попробуйте онлайн!
Поддерживает произвольное количество ASCII-произведений, соединяющих вместе, а не только 2 (как в 2 предыдущих ответах JS).
источник
Чисто , 61 байт
Попробуйте онлайн!
источник
Swift 4 , 119 байт
объяснение
Попробуйте онлайн!
источник