Предполагается, что это вызов для игры в гольф на более простом конце спектра. Но я подумал, что было бы неплохо провести здесь некоторую микрооптимизацию.
Существует три основных типа разъемов DVI : DVI-A (аналоговый), DVI-D (цифровой) и DVI-I (встроенный). Кроме того, существуют одноканальные и двухканальные версии разъемов DVI-D и DVI-I. Каждый из этих пяти различных разъемов использует свой набор контактов.
Учитывая один из A
, D1
, D2
, I1
, в I2
качестве идентификатора типа разъема, распечатайте соответствующий ASCII представление его контактов:
A:
# # # # # # #
===== # # #
# # # # # #
D1:
# # # # # #
===== # # # # # #
# # # # # #
D2:
# # # # # # # #
===== # # # # # # # #
# # # # # # # #
I1:
# # # # # # # #
===== # # # # # #
# # # # # # # #
I2:
# # # # # # # # # #
===== # # # # # # # #
# # # # # # # # # #
( X:
Строки не являются частью вывода, вы должны напечатать только 3 строки.)
Вы можете написать программу или функцию, используя ввод через STDIN, ARGV или аргумент функции. Выходные данные должны быть распечатаны в STDOUT с дополнительным переводом строки в конце.
Вы можете включать или не включать конечные пробелы во второй строке A
соединителя. Вы не должны использовать дополнительное ведение или конечные пробелы где-либо еще.
Это код гольф, поэтому самый короткий ответ (в байтах) выигрывает.
источник
"I1"
заключен в кавычки, например вместоI1
?Ответы:
CJam,
7970 байтВдохновленный ответом Нутки . Это также гарантирует, что нет пробелов (за исключением второй строки)
Используйте эту ссылку чтобы скопировать код, поскольку SE удаляет непечатные символы.
Есть 5 символов в непечатаемом диапазоне ASCII, но в пределах байта (код ASCII 255)
Как это работает :
Попробуйте это онлайн здесь
источник
Perl -
10091 (включая 1 флаг)Использует идеи Nutki об использовании
-p
и сокращении двойных пробелов. Также упрощено устранение замыкающих пробелов.Входные данные поступают из стандартного ввода и должны содержать только тип соединителя без завершающей строки.
Предыдущая:
Принимает аргумент командной строки. Ungolfed:
источник
$x=shift|" qb"
и заменив 3 вхождения двойного пробелаb
на в шаблоне. Кроме того, изменение обработки ввода на «-p» дает 7 дополнительных (без флага):$x=$_|""
и нет необходимости в финалеsay
.x
в#
. Но во второй строке все еще есть пробелы во всех случаях. ИбоA
пространство выходит за пределы финала#
других строк (что, я полагаю, технически разрешено). Но дляI1
,I2
и т. Д. В некоторых случаях по-прежнему есть место, за которым нужно позаботиться. Я думаю, что смогу сыграть еще пару персонажей.Python, 168 символов
Похоже, новый подход. У меня есть строка:
Я заменить
G
,H
и2
на основе входных данных.источник
J
Минимизированный153 121119 символовТретий подход: упаковать все
и
Unminified#
в огромное целое в виде битов. Добавьте=
потом. Тем не менее, по-прежнему не используется симметрия многих вариантов разъема.Минимизированный (153)
Также как функция. Этот использует двоичное кодирование переменной длины, подсчитывая их в двоичном коде и разделяя нулями. 0 один ряд означает
, 1 один означает
Ungolfed#
, 2 один означает=
, 3 один означает новую и 4 один отделяют пять строк друг от друга.источник
Marbelous, 281 байт / символы
уменьшенная:
Это происходит
D1
,D2
,I1
,I2
илиA
из STDIN. Завершать переводы строк во входных данных необязательно. Выход на STDOUT.Эта программа вызывает подпункты, которые печатают части соединителей, либо заполняя
#
s, либо оставляя пробелы в зависимости от входных данных.Попробуйте этот ответ здесь ; нужны цилиндрические доски.
с комментариями:
источник
Perl 5: 105 (включая 1 флаг)
Еще одно решение Perl. Использует стандартный ввод для параметра.
источник
GNU sed, 116 байт
Выход:
источник
J,
Минимизированный198 194157 символовРеализовано как функция. Обратите внимание, что функция представляет собой последовательность, то есть для ее использования нужно будет заключить ее в скобки или присвоить имя (возможно, мне следует считать парены частью функции, хотя технически это не так).
UngolfedИдея состоит в том, чтобы хранить общую часть строки отдельно от символов, которые отличаются между типами соединителей.
S1
хранит уникальные символы иS2
действует как шаблон сx
заполнителями в качестве заполнителей.источник
Питон -
167 166 164 161159источник
JavaScript (ES6) 178
186Править Имея 7 базовых блоков, используйте базовый 7
прямой путь, используя строение строк с заменой и 7 строительных блоков.
Вывод на стандартный вывод с использованием оповещения в соответствии с запросом OP.
Сейчас попробую несколько микрооптимизаций ...
Тестирование в консоли FireFox / FireBug - удаление предупреждения для упрощения теста
Выход
источник
APL (115)
Тест:
источник
JavScript ES6, 186 байт
Показать фрагмент кода
Код быстрый и грязный, но он выполняет свою работу. В основном, числа
#
и пробелы помещаются в двоичный код, а затем в базу 36. Я ищу более элегантное и, надеюсь, более короткое решение.источник
Perl 5 - 150 (149 + 1 для
n
)Golfed:
Ввод из STDIN, вывод в STDOUT. Работает, заполняя определенные символы с
#
илизависимости от ввода.
Ungolfed:
источник