Вступление
Кодовая страница отображает целочисленные значения на определенный символ. Мы можем визуализировать кодовую страницу следующим образом:
+ --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | Б | C | D | E | F | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + | 0 | q | ш | е | г | т | z | ты | я | о | р | а | с | д | f | г | J | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + | 1 | к | л | у | х | с | V | б | п | м | Q | W | E | R | T | Z | U | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- + | 2 | Я | O | P | A | S | D | F | G | H | J | | | | | | | + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + - - + --- + --- + --- + --- +
В строках указывается первая цифра, а в столбцах - вторая цифра шестнадцатеричного числа.
Соревнование
Учитывая строку из 16-255 уникальных символов, выведите соответствующую кодовую страницу, используя в качестве значения нулевой индекс каждого символа в строке. qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJ
Например, входные данные приведут таблицу выше.
- Вывод должен быть в том же формате, что и в таблице выше. Только завершающий перевод строки не является обязательным.
- Если длина ввода не кратна 16, вам нужно начать новую строку для оставшихся символов и оставить неиспользуемые ячейки пустыми (= заполнено 3 пробелами).
- Каждый персонаж размещается точно в середине ячейки, дополненный одним пробелом слева и справа.
- Значения в первой строке и столбце задаются шестнадцатеричными числами с цифрами
0123456789ABCDEF
. Они дополняются одним пробелом слева и справа. Вы можете использовать строчные шестнадцатеричные цифры, но вам нужно придерживаться одной. - Единственными символами, присутствующими в выходных данных, являются дефисы
-
, плюсы+
, каналы|
, пробелы, цифры шестнадцатеричных чисел и символы из входных данных.
- Любые встроенные функции, которые связаны с таблицами ASCII-art или тривиализируют проблему, запрещены.
- Вы можете предположить, что ввод состоит только из символов определенной кодировки. Пожалуйста, уточните, так ли это.
- Если ваш язык может обрабатывать только ввод ASCII, вы можете использовать ввод только ASCII и повторяющиеся символы.
правила
- Функция или полная программа разрешены.
- Правила по умолчанию для ввода / вывода.
- Применяются стандартные лазейки .
- Это код-гольф , поэтому выигрывает меньшее количество байт. Tiebreaker является более ранним представлением.
Удачного кодирования!
Ответы:
Pyth, 60 байт
Ведущий символ новой строки является значительным.
Попробуй это здесь.
источник
+---+---+---[...]
. В Pyth функция newline печатает и возвращает свой аргумент.Python 3.5,
326355 байт:( +29 байт, поскольку, если длина последней строки не кратна 16, неиспользуемые ячейки следует оставить пустыми (хотя, на мой взгляд, выглядит намного лучше, если эти пустые ячейки просто не отображаются) )
Работает как шарм!
Образцы входов и выходов:
Я надеюсь, что это нормально.
Кроме того, вот еще одна версия, которую я создал для этой задачи, которая, хотя и является недопустимым кандидатом, поскольку она не распечатывает лишних пустых ячеек для последней строки, если ее длина не кратна 16, на мой взгляд, выводит намного лучше выглядящую страницу чем тот, который требуется для OP, главным образом потому, что он даже не показывает пустые ячейки, если последняя строка не кратна 16, а вместо этого просто показывает заполненные ячейки, и это все:
Вот пример ввода и вывода для неприменимого кода выше:
источник
05AB1E ,
6563 байтаКод:
Попробуйте онлайн! , Использует кодировку CP-1252 .
источник
JavaScript (ES6), 148 байт
' 0123456789ABCDEF'
Существует для заполнения первого столбца, но удобно также охватывает первую строку. Затем входная строка дополняется пробелами, чтобы можно было разбить ее на подстроки длиной 16, чтобы(?|^)
предотвратить совпадение начального пробела. Остальное просто соединяет кусочки.источник
Excel VBA, 157 байт (читерство?)
Анонимная функция VBE Immediate Window, которая деструктивно принимает входные данные из диапазона
[A1]
и выводитActiveSheet
объект.Golfed
отформатирован
Ввод, вывод
Данный:
сгенерированный вывод
источник