Учитывая букву английского алфавита, ваша задача состоит в том, чтобы построить полудиагональный алфавит для ввода.
Как построить полудиагональный алфавит?
Краткое описание : Во-первых, вы берете позицию буквы в алфавите P
( P
здесь 1-индексирован). Затем вы печатаете каждую букву до ввода (включительно) в строке, которой предшествует, P-1
и повторяете эту букву P
раз, чередуя с пробелами.
Примеры :
Учитывая
F
, ваша программа должна вывести:BB CCC DDDD EEEEE FFFFFF
Учитывая
K
, ваша программа должна вывести:A BB CCC DDDD EEEEE FFFFFF GGGGGGG HHHHHHHH IIIIIIIII JJJJJJJJJJ KKKKKKKKKKK
Учитывая
A
, ваша программа должна вывести:A
правила
Вы можете выбрать строчные или прописные символы, но это должно быть согласовано.
Вы можете иметь посторонние места следующим образом:
- Один последовательный ведущий пробел (на каждой строке).
- Завершающий или ведущий символ новой строки.
- Конечные пробелы.
Ввод и вывод могут быть взяты любым стандартным средним, и применяются лазейки по умолчанию.
Вместо этого вам разрешено выводить список строк, если вы также предоставляете версию ascii-art .
Это код-гольф , поэтому выигрывает самый короткий код в байтах!
Вдохновленный этим вызовом .
Ответы:
Python 3 , 59 байт
Попробуйте онлайн!
Python 3 , 61 байт
Попробуйте онлайн! (ссылка на красивую версию для печати)
источник
Python 2 ,
636159 байт-2 байта благодаря Роду. -2 байта благодаря Фелипе Нарди Батиста.
Попробуйте онлайн!
источник
C 89 байтов
Попробуйте онлайн!
источник
PowerShell ,
4542 байтаПопробуйте онлайн!
Принимает входные данные в виде буквенного символа, затем перебирает заглавные буквы до этой точки, каждая итерация предшествует соответствующему количеству пробелов, а затем гибриду char / space.
Сохранено 3 байта благодаря TessellatingHeckler.
источник
"$args"
здесь не сработало, я забыл о[0]
методе. Ха - ха.JavaScript (ES6), 85 байт
Работает в нижнем регистре для ввода и вывода. Выводит пробел и пробел в каждой строке.
демонстрация
Показать фрагмент кода
источник
`${s} `
может быть заменено(s+"")
на одно байтовое сохранение(s+" ")
, но это так же долго.APL (Dyalog) , 26 байтов
Запрашивает скалярный характер. Распечатывает список строк.
Попробуйте онлайн! (имеет ASCII художественную версию на один дополнительный байт)
⎕
запрос на ввод⎕A⍳
найти ɩ NDEX в lphabet⍳
первое , что многие ɩ ntegers(
…)¨
Применить следующую молчаливую функцию к каждому:⊃∘⎕A
выбрать argument'th письмо письмо от A lphabet⊢⍴
циклически изменить его до длины аргумента' ',¨⍨
добавить пробел к каждому⍴∘'',
добавить строку длины аргумента (дополненную пробелами)∊
ε NLIST (Flatten)Художественная версия ASCII имеет только
↑
слева; смешать список строк в таблицу символов.источник
Perl 5 , 31 байт
Код 30 байтов + 1 для
-l
.Try it online!
источник
say
вместо-l
флага: Попробуйте онлайн!-E
/-M5.01
, я много использовалаsay
в прошлом, и, вероятно, злоупотреблю тем, чтоsay
является альтернативойprint
в ограниченном исходном вызове или подобном, возможно, но ради -3, я буду держать как есть на данный момент. См. Этот мета пост для справедливого аргумента . Цените вход хотя!Dyalog APL, 38 байт
Попробуйте онлайн!
Как?
⎕A↑⍨
- возьмите алфавит до⎕A⍳⍵
- вводимый символ¨
- за каждый символ⍵,' '
- возьми чар и пробел(...)⍴
- преобразовать в2×y←⎕A⍳⍵
- вдвое больше индекса символа в алфавите(y/' ')
- и добавьте пробелы индекса-символа↑
- затем сгладитьисточник
APL (Dyalog Classic) , 26 байтов
Попробуйте онлайн!
объяснение
источник
{}
, заменить⍵
на⎕
и заявить, что это "полная программа", а не функция. Это сделало бы ваше решение лучшим (пока).V ,
28, 26, 25, 23 байта ( конкурирующие )Попробуйте онлайн!
Обратите внимание, что, хотя я планировал добавлять определенные функции в течение длительного времени, эта проблема и подтолкнула меня к окончательному выполнению.
Выходные данные содержат один начальный пробел в каждой строке и один завершающий символ новой строки.
HexDump:
Объяснение:
источник
05AB1E , 10 байтов
Попробуйте онлайн!
-2 спасибо Аднану .
Добавить,
»
чтобы он печатался отдельными строками.источник
<
как одно последовательное начальное пространство в порядке.A¹¡н«ðâƶāú
должен работать на 10 байтов¹¡
это не сработает ... так вот почему там«
есть. : pR,
9488 байт-6 байт благодаря Джузеппе
Ungolfed:
источник
f
как это одна строка, и использованиеmatch
вместоwhich
сохранения байта.Haskell,
5244 байтаВозвращает список строк.
Попробуйте онлайн!
Изменить: @jferard: сохранены три байта. Благодарность!
источник
f k=[tail$[" ",s:" "]>>=(['A'..s]>>)|s<-['A'..k]]
tail$
.JavaScript (ES8), 92 байта
Используются строчные буквы. Линии имеют один ведущий и один завершающий пробел. Возвращает массив строк.
Тестовый фрагмент
источник
Шелуха , 13 байт
Принимает символ в одинарных кавычках в качестве аргумента командной строки, выводит результат в STDOUT. Попробуйте онлайн!
объяснение
Я использую способ, которым Husk печатает списки списков строк: объединяйте внутренние списки с пробелами и внешние списки с новыми строками.
источник
05AB1E ,
151413 байтСпас 1 байт благодаря Аднану
Попробуйте онлайн! или художественная версия Ascii
объяснение
источник
A¹¡н«
вместо того,ADIk>£
чтобы работатьA¹¡н
но не«
APL (Dyalog Unicode) , 22 байта SBCS
Попробуйте онлайн!
Использует
⎕io←1
. Печать пробела, что разрешено.источник
QBasic,
797472 байтаСпасибо Тейлору Скотту за байтовую экономию (дважды!)
Использует прописные буквы. Ввод осуществляется нажатием клавиши и не отображается на экране.
объяснение
Цикл
i
от1
позиции буквы до буквы алфавита ( начиная с 1). Для каждогоi
мы переместимся в столбецi
экрана с помощьюTAB
; затем,i
раз мы печатаемi
букву алфавита, за которой следует пробел.источник
INPUT$(1)
команду как прямую замену переменнойz$
для дельты -2 байтаJapt
-R
,24231715 байтВыводит массив, содержащий начальный символ новой строки и начальный и конечный пробел в каждой строке.
Попробуй это
источник
Древесный уголь , 18 байт
Попробуйте онлайн!
источник
E…·?θ⁺× κ⪫× κι
бы работа выполнялась в 14 байтах.?
туда попал. Это должно бытьA
вместо этого, я думаю. Ой, подождите, оооо, я понимаю, что вы имеете в виду.Брайнгольф , 65 байт
Попробуйте онлайн!
Строчные.
Содержит 1 завершающий пробел в каждой строке и завершающий символ новой строки в конце выходных данных.
источник
C # (.NET Core) , 103 байта
Попробуйте онлайн!
источник
JavaScript,
10294 байта2 байта сохранены благодаря Нейлу
источник
Сетчатка , 51 байт
Попробуйте онлайн! Объяснение:
Дублируйте (первое) письмо.
Поверните его обратно на 1 в алфавите или удалите, если это дубликат
A
. Продолжайте дублировать и вращать, пока мы не дублируемA
, после чего удаление отменяет дублирование и цикл завершается.Замените каждую букву строкой с буквой с обеих сторон.
Вставьте дубликаты букв между всеми парами отступов справа от существующих букв.
источник
Haskell , 57 байт
Попробуйте онлайн!
источник
Древесный уголь , 15 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Если дополнительное заполнение было разрешено, это сработало бы для 14 байтов:
Попробуйте онлайн! Ссылка на подробную версию кода.
источник
Mathematica, 70 байт
в нижнем регистре
выводит список
спасибо @ngenisis за исправления
Для версии ascii-art место
Column@
в началеисточник
Excel VBA, 72 байта
Функция анонимного непосредственного окна VBE, которая принимает входные данные из ячейки
A1
и выводит их в непосредственное окно VBEисточник
Pyth , 17 байт
Попробуйте это здесь (красивая версия для печати).
Как это работает?
hxG
- Принимает индекс ввода в строчном алфавите.<G
- Обрезает каждый символ после ввода из алфавита..e
- Пронумерованная карта. Карты над обрезанным алфавитом с индексами какk
и буквами какb
.*kd
- Добавитьk
пробелы.+bd
-b
+ пробел (текущая буква + пробел).*...hk
- Повторитеk+1
раз.+(...)(...)
- сцепить.источник
.e+*kdjd*bhk<GhxG
как 17 байтов.e+*kd*+bdhkhcGQ
C ++ (gcc) , 164 байта
Моя первая попытка после долгого укрытия!
Разрушенный код ниже:
Попробуйте онлайн!
источник