задача
Учитывая один непечатаемый печатный символ, создайте 3x3 квадратное представление этого ввода. Например, если вход является #
, то выход:
###
# #
###
правила
- Формат вывода является строгим, хотя допускается завершающий перевод строки. Это означает, что в середине необходим пробел, а также требуются два символа новой строки, разделяющие три строки.
Testcases
Входные данные: #
Выход:
###
# #
###
Входные данные: A
Выход:
AAA
A A
AAA
Входные данные: 0
Выход:
000
0 0
000
счет
Это код-гольф . Кратчайший ответ в байтах побеждает.
Ответы:
Древесный уголь ,
53 байтаПопробуйте онлайн! Изменить: Экономия 40% благодаря @carusocomputing. Объяснение:
источник
B³S
обмануть живого дерьма из этого.Морковь , 11 байт
Попробуйте онлайн!
Программа находится в режиме каретки, где
#
s заменяется вводом.источник
Python 2 , 32 байта
Попробуйте онлайн!
Для
s='a'
: среднееs+'\n \n'+s
генерируетa\n \na
иs.join
превращает его (жирный s - это те, которые добавляют), потому что принимает строку как итеративную, тогда она окружена двумя пропущенными символамиaa\na a\naa
a
.join
.join
источник
3*c+c.join('\n \n')+3*c
связи в 32.)MATL , 5 байтов
Попробуйте онлайн!
объяснение
источник
05AB1E , 8 байтов
Попробуйте онлайн!
Оригинальная идея, использующая 30 как двоичное число (незаконченное, кто-то еще попробует это в другом языке):
05AB1E , 12 байтов
Попробуйте онлайн!
источник
Python 3.6 , 33 байта
Попробуйте онлайн!
источник
import sys
а затемsys.version
в repl, он возвращает 3.6.1, а не 3.5.2. Понятия не имею, почему там написано 3.5.2 вверху, похоже, они ошиблись там!RPL (обратный польский лисп) , 60 знаков
(Обратите внимание, что «→» - это один символ на HP48 и совместимых калькуляторах)
Визуально представляет то, что вы хотите, имея три элемента в стеке:
Если вы настаиваете на том, чтобы вернуть его как одну строку, нужно также добавить символы новой строки и объединить строки, оставленные в качестве упражнения для следующего тестировщика.
Объяснение:
→STR
: Сделать последний объект в стеке в строку. (Таким образом, ввод может быть любым, например, числом.)1
4
: Нажмите номер1
и4
в стек.START [...] NEXT
: Как цикл for, но без доступа к переменной counter. Извлекает два числа из стека (здесь мы только что нажали1
и4
) и выполняет код[...]
соответствующее время (здесь, четыре раза).DUP
: Дублировать последнюю запись в стеке." "
: Вставьте строку(то есть строку с одним пробелом) в стек.
+
: Возьмите два объекта из стека и верните их вместе, для строк: Конкатенация.4
: Вставьте номер4
в стек.ROLLD
: Берет последний элемент (здесь:4
который мы только что вытолкнули) из стека и катит следующий элемент так далеко вниз по стеку, как указано число, которое мы только что взяли из стека.SWAP
: Меняет местами два последних элемента стека.2
: Толкать2
в стек.PICK
: Берет элемент (здесь: который2
мы только что поместили в стек), интерпретирует его как число n и копирует n-й элемент из стека.источник
JavaScript, 28 байт
Попытайся
источник
c+'\n'+c
во временном файле.Желе , 8 байт
1 байт благодаря Эрику Аутгольферу.
Попробуйте онлайн!
источник
x4µ©;⁶;®œs3Y
12 байтов, потому что я не мог понять, как избежать повторения, умножив весь мой промежуточный шаг, но приятно!K
для этогоj⁶
. О, и есть быстрое`
преобразование диады в монаду, используя один и тот же аргумент с обеих сторон.Java 7,
5655 байт-1 Спасибо Leaky Nun за указание места, которое я пропустил
Просто заменяет периоды указанным символом для ввода #:
Попробуйте онлайн!
источник
PHP, 32 байта
Попробуйте онлайн!
источник
<?=$a=$argn,"$a$a\n$a $a\n$a$a$a";
(реальный разрыв строки вместо \ n, конечно) имеет точно такое же количество байтов.sed,
2818 байтовПопробуйте онлайн!
источник
:
. Исправлена.Brain-Flak ,
7670 + 1 = 71 байтТребуется
-c
флагПопробуйте онлайн!
источник
(()()()()()){}
на([])[]{}
.Pyth, 7 байт
Попробуйте это онлайн.
Объяснение:
источник
Brain-Flak ,
61, 59 байтПопробуйте онлайн!
Это 58 байт кода
+1
для-c
флага, который позволяет вводить и выводить ASCII.Объяснение:
источник
C (gcc) ,
4947 байтовСохранено 2 байта благодаря 2501!
Попробуйте онлайн! завершающий перевод строки
источник
for(j=11;j;)...
Python 3 , 34 байта
Попробуйте онлайн!
источник
lambda x:x*3+'\n%s '%x+x+'\n'+x*3
Октава , 36 байт
Попробуйте онлайн!
объяснение
Это создает матрицу 3x3 с повторным вводом char и устанавливает ее 5-ую запись в мажорном столбце (т. Е. Ее центр) в
32
(ASCII для пробела).источник
Пайк , 5 байт
Попробуйте онлайн!
источник
Рубин ,
2725 байтСохранено 2 байта благодаря Level River St
Попробуйте онлайн!
источник
f=...
), затем вызвать его с помощьюf.call(...)
"\n"
чтобы сэкономить 1 байт. Еще лучше использовать$/
специальную переменную, установленную по умолчанию на новую строку, экономя 2 байта.tr
решение. хорошая работаBrainfuck, 40 байт
Попробуйте онлайн! Требуется реализация, которая может получить доступ слева от начальной позиции.
Также см .: ответ Гравитона на мозг, который использует другой подход (но дольше).
Объяснение:
Brainfuck может делать много крутых трюков с его ограниченным набором инструкций. К сожалению, в этом ответе не используется ни один из них, потому что дешевле (в байтах) просто жестко закодировать все.
# = вводимый символ, _ = пробел (ASCII 32), \ n = перевод строки (ASCII 10)
Результаты в этой красивой коробке (для ввода '+'):
источник
05AB1E ,
76 байтов-1 байт благодаря carusocomputing.
Объяснение:
Использует кодировку CP-1252 . Попробуйте онлайн!
источник
ж¹ðJû
для 6 байтов.Pyth , 11 байт
Попробуйте онлайн!
Объяснение:
источник
> <> ,
2423 байтаПопробуйте онлайн!
источник
Swift3, 50 байт
Это использует троичный оператор для печати различных строк, в зависимости от строки.
Попробуйте онлайн
источник
V , 8 байт
Попробуйте онлайн!
источник
<M-h>ollow
команда (недокументированная?) , Которая позволяет вам вытащить внутреннюю часть вашего ящика: попробуйте онлайн!C #, 50 байтов
Прецедент:
источник
Console
естьSystem.Console..
Vim, 9 нажатий клавиш
Предполагая, что входной символ присутствует в буфере, vim делает это просто
Здесь, вероятно, есть несколько магических команд vim (которые всегда есть), поэтому предложения по улучшению приветствуются. Только одно нажатие клавиши позади V!
источник
Сборка Z80 или 8080, машинный код 21 байт
Предположим, что устройство ввода-вывода с отображенной памятью:
Переводчик не нужен!
HexDump:
где входной адрес находится в FF00h, а выходной адрес отображается в FF01h. Фактические адреса будут зависеть от фактического оборудования. Конечно, это предполагает, что ввод / вывод отображен в память. Если это отображение ввода / вывода, потребуется несколько дополнительных байтов, потому что инструкции ввода / вывода Z80 и 8080 по два байта каждая. Это также предполагает, что устройство вывода интерпретирует 0Ah как новую строку и не требует CR (0Dh), который добавил бы к программе дополнительные 4 байта.
источник
J-uby ,
2220 байтов-2 байта благодаря @Jordan
объяснение
String#tr
это метод замены символов в Ruby. Первый&
привязывается:tr
к"...\n. .\n..."
, а второй частично относится'.'
к нему. По сути, это->s{"...\n. .\n...".tr('.',s)}
источник
:tr
работать так же, как:gsub
здесь?