Ваша цель - создать алфавитную песню в виде текста в следующей форме (по порядку):
A is for <word starting with A>
B is for <word starting with B>
C is for <word starting with C>
...
Z is for <word starting with Z>
Пример вывода:
A is for Apple
B is for Banana
C is for Carrot
D is for Door
E is for Elephant
F is for Frog
G is for Goat
H is for Hat
I is for Icicle
J is for Jelly
K is for Kangaroo
L is for Lovely
M is for Mom
N is for Never
O is for Open
P is for Paste
Q is for Queen
R is for Rice
S is for Star
T is for Test
U is for Underneath
V is for Very
W is for Water
X is for X-ray
Y is for Yellow
Z is for Zipper
Правила:
Каждая «буква» песни имеет свою собственную строку, поэтому есть 26 строк и возможный завершающий перевод строки.
Вывод чувствителен к регистру:
- Буква в начале каждой строки должна быть заглавной.
is for
в нижнем регистре.- Выбранное слово не нужно вводить с заглавной буквы, но может быть. Все строки должны быть последовательными.
Выбранное слово для каждой строки зависит от вас, но оно должно быть действительным английским словом, содержащим не менее 3 букв, и не может быть соединением (например,
and
илиbut
), междометием / восклицательным знаком (например,hey
илиyay
), аббревиатурой (напримерXLS
) или имя (какJon
).Хотя я сомневаюсь, что кто-то найдет его короче, я бы допустил использование фразы вместо одного слова. Так что если по какой-то причине
S is for Something smells fishy...
короче, дерзайте.Поместите вывод вашей программы в свой ответ или хотя бы в список слов, которые вы использовали (если есть ссылка для запуска вашего кода онлайн, нам не нужно видеть весь вывод).
Самый короткий код выигрывает
Этот вызов был вдохновлен этим видео .
источник
Ответы:
SOGL 0.8.1 ,
6032 байтаОбъяснение:
Это в значительной степени ответ Джонатана Аллана , но перенесенный на этот язык.
Старая версия: (SOGL 0.8.2)
выход:
Это не самое короткое, что может сделать этот язык, но оно должно быть лучшим с жестко закодированными словами.
источник
Bash (+ coreutils),
81,87,8278 байтИспользует справочную страницу для X , как источник слов.
Golfed
редактирует
|&
для сохранения 5 байт;Контрольная работа
источник
|&
, чтобы его можно было найти.Python 2 ,
8877 байт-11 байт благодаря xnor (избегайте zip, обходя строку и считая
c
с 65)Попробуйте онлайн!
(Порт моего Jelly ответа, когда было 56 байтов.)
источник
x
.Unt
? Нигде не могу его найтиUnt
это слово, ноUt
это так, что вы можете заменитьn
в своем литерале,\0
чтобы сделать это допустимым и добавить только еще один байт. Редактировать правила бессмысленности говорят, что это должно быть 3 буквы длиной ... хмммBash,
7869 байтАардваркс, Бабушка и Камикадзе!
Golfed
редактирует
Контрольная работа
Использует / usr / share / dict / words :
источник
PowerShell ,
15014111775 байтПопробуйте онлайн!
Циклы от
65
до90
(т. Е. ASCIIA
доZ
). На каждой итерации мы превращаем целое число в соответствующееchar
(т. Е. ASCII65
дляA
), сохраняем его в$i
последующем для использования, объединяем строки сis for $i
, а затем добавляем середину соответствующего слова. Это делается путем индексации в длинную строку (заимствовано из ответа Джонатана Аллана ). Заканчивается буквой,t
чтобы сделать трехбуквенное слово.Получающиеся строки все остаются в конвейере, и неявный
Write-Output
в конце печатает их с символами новой строки между ними.Спасла кучу байтов благодаря списку слов Род-
Брора в ответе Джонатана Аллана
источник
[char]$
примеромЖеле , 39 байт
TryItOnline!
Основан на 56-байтовой версии (две ниже), но изменил слова, чтобы убрать все средние буквы,
"u"
чтобы он мог индексироваться в словарное слово"anisole"
*, что имеет удобство, когда все нужные нам буквы имеют индексы меньше шести:1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e
(обратите внимание на"e"
справа - индекс ноль [также 7 и -7 и любое другое число, совпадающее с 0 mod 7]). Это также рано в словаре, поэтому имеет только два, а не гораздо более распространенный трехбайтовый индекс поиска ("anisogamete"
также будет работать для 2).* Старая школа название ароматического эфира метоксибензола, часто используемого в парфюмерии.
Как?
Предыдущая, 46
Все слова имеют вторую букву «s» или «a» и последнюю букву «p» или «t», используя поиск по четырем базам в декартовом произведении «sa» и «pt». За исключением слова «U», которое код меняет на «Использовать» (используя относительно громоздкий
F”e272¦
конец) - если бы я мог найти такой список слов, который не имеет такого исключения, мы бы посмотрели 39 байтов .Список слов:
Попробуй это
Предыдущие 56 байт
Список слов:
Он отформатирован, попробуй
Предыдущий, 83 байта
... давайте поиграем "Найди, в какой букве нет животного!" есть
один, и только один - остерегайтесь красной сельди(ложь, красная сельдь была ксеноном, который является элементом, очевидно, не животным) , здесь два пятибуквенных слова, которые не являются животными (ксенон - одно) :(конечно это правильно отформатировано, попробуйте - я просто подумал, что сэкономлю место)
источник
Xenon
это не животное Я был уверен, что ты шутилH is for Herring
, но, думаю, нет.Uut
?Retina ,
8987 байтСохранено 2 байта благодаря Мартину Эндеру
Попробуйте онлайн!
Я выбрал слово для каждой буквы, которая заканчивается
t
(некоторые довольно неясны).объяснение
Замените несуществующий (пустой) ввод текстом выше.
Замените каждую заглавную букву на
(newline)(itself) is for (itself)
. Это приводит к тому, что текст выше разбивается на отдельные строки, такие как... и так далее
Тем не менее, поскольку символ новой строки был помещен перед каждой заглавной буквой, существует символ новой строки, который необходимо удалить. Это удалено на этом этапе.
Поместите
t
в конце каждой строки, так как каждое слово, используемое в песне, заканчивается наt
.источник
$&
или$0
вместо$1
. На самом деле это также может сэкономить байты на моей стадии разделения.$&
? Я не видел этого на вики-сайте GitHub.$0
(и это только часть разновидности .NET, как и большинства других разновидностей).Сетчатка ,
9288 байтСохранено 4 байта, заимствуя идею из ответа Business Cat .
Число байтов предполагает кодировку ISO 8859-1.
Попробуйте онлайн!
На основе AdmBorkBork's слов , но я изменил еще несколько слов на те, которые заканчиваются,
ad
чтобы сохранить больше байтов в общем суффиксе.объяснение
Превратите пустой (несуществующий) ввод в эту строку. Он содержит все буквы, а также остальные слова, которые не заканчиваются на
ad
.Вставьте перевод строки перед каждой заглавной буквой, а затем включите ее
X is for X
.Сопоставьте буквы, которые теперь сами по себе, и добавьте,
ad
чтобы завершить сокращенные слова.Откажитесь от пустой строки, которая была создана, вставив перевод строки ранее
A
.источник
PHP,
122124127120115101 байтСледует "стандартной"
<letter><filler>t
структуре.Я пытался придумать слова, которые раньше никто не использовал.
Если вы видите слово, которое хотите, чтобы я заменил, скажите мне.
Новая строка представляется как,
\n
но считается как 1 байт.Выход:
Странные слова:
источник
vprintf
иzend_version
, безусловно, не английские слова. Очень немногие из этих сущностей на самом деле слова.zit
странное слово, по крайней мере, я думаю, что все должны уже знать, что это значит.Пайк,
555148 байтПопробуй это здесь!
Ссылка на 3 длины и не подходит, так как слова включают в себя слова.
Выходы:
Вы можете проверить это вне Pyke, используя тот же алгоритм. Требуется dictionary.json .
источник
Timeout running code. BAD EVAL
Убедитесь, что вы обновили ссылку "Попробуйте онлайн".Z is for zoofilia
Я бы серьезно подумал, прежде чем позволить моим детям петь это.Japt ,
5250 байтСотрудничал с @ETHproductions
Содержит много непечатных. Проверьте это онлайн!
Список слов:
Japt использует библиотеку сжатия строк shoco , которая сокращает количество байтов в нижнем регистре. Вот полный список всех двухбуквенных прогонов, которые сведены в один байт:
Таким образом, идея состоит в том, чтобы сформировать слово с одной из этих пар для каждой буквы алфавита.
Следует отметить одну интересную вещь: хотя Japt может неявно распаковывать строку, заключенную в обратные кавычки, на самом деле это здесь на байт длиннее, потому что вам придется взять два символа в распакованной строке, а не один.
источник
05AB1E ,
454239383736 байтПопробуйте онлайн!
объяснение
Au
толкает заглавный алфавит.'Æå
толкает словоscenario
.•à¡P°€kš¦zᮕ
толкает номер базы-1036774474076746444766322426
.Sè
использует эти цифры для индексацииscenario
.)ø
застегивает эти строки вместе в списке[An, Bi, Co, ..., Zi]
Используемые слова:
['Ant', 'Bit', 'Cot', 'Dot', 'Eat', 'Fat', 'Got', 'Hat', 'Ist', 'Jot', 'Kit', 'Lot', 'Mat', 'Nit', 'Oat', 'Pat', 'Qat', 'Rot', 'Sit', 'Tit', 'Unt', 'Vet', 'Wet', 'Xat', 'Yet', 'Zit']
33-байтовая версия, использующая некоторые слова, в которых я не уверен
Слова:
['Ant', 'Bat', 'Cat', 'Dat', 'Eat', 'Fat', 'Gat', 'Hat', 'Ist', 'Jat', 'Kat', 'Lat', 'Mat', 'Nat', 'Oat', 'Pat', 'Qat', 'Rat', 'Sat', 'Tat', 'Ust', 'Vat', 'Wat', 'Xat', 'Yat', 'Zat']
источник
Ruby,
93 84 69 63 5862 байтаВыход:
Все трехбуквенные слова, заканчивающиеся на «т», большинство из них «на».
Использование спорных слов (iat, dat, amp. Ump) - 55 байт:
Все еще пытаясь найти образец, я думаю, что можно использовать только 2 разных окончания и все упростить.
Спасибо @Value Ink и @Business Cat за помощь.
источник
/#{l}../
kit
.///, 163 байта
Попробуйте онлайн
Хм, сегодня кое-что узнал ...
источник
05AB1E ,
7268 байтКод:
Использует кодировку CP-1252 . Попробуйте онлайн!
объяснение
Следующий код:
толкает этот массив:
И обрабатывается с использованием следующего кода:
источник
”–³”=Apple
иint(–³,214)=23891
я все еще не вижу здесь корреляции.Clojure,
159232 байтаЧто ж, теперь это, безусловно, неконкурентное решение, так как было бы намного проще жестко закодировать используемые слова. Размещайте это только ради правильного ответа (и не используйте список слов других людей).
В основном все еще получает все функции, определенные в
clojure.core
пространстве имен, но после этого оцениваетdoc <function name>
и помещает его в строку. После этого объединяет его в одну огромную строку (со словомxyst
) и оттуда находит подходящие слова. Должен быть запущен в Clojure REPL.Выход:
Старое решение:
источник
or
нетorb
, за 1 байт.JavaScript (ES6), 82 байта
Анонимная функция, возвращающая строку. Содержит непечатные материалы; вот версия, которая не делает:
При этом используется метод @ JonathanAllen, использующий только трехбуквенные слова, оканчивающиеся на
t
. Строка распаковывается вAnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi
.Я пробовал связывать двухбуквенные пары следующим образом:
Теперь я
X
прошел весь путь, но застрялY
; насколько я могу судить, единственное достижимое трехбуквенноеX
словоXis
, а трехбуквенное слово, начинающееся сYs
.Для записи, полная строка была
ceeeweeereueaebiueeiziais
...источник
uzi
иtiz
...sei
,ski
илиsri
, что оставляет вас сree
,roe
,rue
,rye
, который оставляет вас ... только три буквыq
-слов я могу найти этоqat
,qis
иqua
. Есть ли страница Викисловаря с более чем трехбуквенными словами?p
слово, которое заканчиваетсяu
на.)piu
, так что это совсем не проблема: P Спасибо!piu
кажется довольно пограничным - в Викисловарь нет его как на английском, а вpiù
Dictionary.com он есть (не знаю, как мы рассматриваем акценты для этой задачи). Но да,ys_
это будет проблемой.Mathematica, 97 байт
В Mathematica ищет
WordList
третье слово, начинающееся с каждой буквы; это позволяет избежать однобуквенных слов и междометий. Имеет новый перевод строки.источник
Groovy,
7673 байта(отредактировано от 76 до 73 байт, спасибо коту)
Вдохновленный решением ruby:
мы используем
any
вместо каждого, так как он короче, и все операторы println возвращают false. Для особых случаев в строке мы используем String.find, который в groovy возвращает совпадение или ноль. В null мы используем оператор elvis?:
для возврата слова, оканчивающегося наat
.Распечатывает:
Groovy, рекурсия, 74 байта
печатает текст из первого ответа, а затем выдает исключение PatternFormatException. Мы вызываем замыкание рекурсивно, начиная с 'A' и увеличивая
++char
до следующего символаZ
сгенерирует ошибку.Groovy, обманывая, 77 байтов
С риском быть линчеванным:
то есть прочитайте данные на этой странице и распечатайте определение правильного ответа в начале. В мою защиту ... он выводит запрошенный ответ ... теперь никто не редактирует страницу ...
Groovy, используя 'times', 81 байт
Основываясь на ответе питона с трехбуквенным шаблоном:
печатает:
Groovy, путем повторения на главном (...), 83 байта
Предполагая, что мы считаем символы новой строки одним символом.
выводит текст из первого ответа, а затем выдает исключение PatternSyntaxException.
Groovy, используя eachWithIndex, 88 байт
Groovy, используя транспонирование, 102 байта
источник
kit
.05AB1E , 77 байт
Попробуйте онлайн!
Использует следующую сжатую строку:
ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP
Преобразовано в Base-214:
Использовал список 3-буквенных слов скрэббл: http://wordfinder.yourdictionary.com/letter-words/3
Вывод следующий:
Была 70-байтовая версия, но двухбуквенные слова не допускаются.
Разъяснение:
источник
qui
это не английское слово. При поиске вы обнаруживаете только латинское слово.Que
я знал, что было 3-х буквенное юридическое слово скрэббл, неправильно написало его.}»
можно заменить на,
.SmileBASIC,
1311138281 байтТеперь, используя слова, которые в
t
источник
Lithp ,
136125117 байт(Сплит для удобства чтения)
Попробуйте онлайн!
Это в значительной степени порт ответа Python
each
индекса(scope #)
Выход:
источник
Пакетный, 250 байт
Так как я никогда не собирался получить приличный счет, я пошел на самые короткие юмористические слова, которые я мог найти:
источник
сложены , 72 байта
Есть два на 72 байта!
Попробуйте онлайн! Используя этот потрясающий шаблон. (Прежде чем спросить,
++
будет один токен, так+ +
используется вместо.)Оба работают путем итерации от и
65
до90
получения правильной последовательности символов. Примечания:#:
это псевдоним дляchr
#
это псевдоним дляget
{!...}
такой же как{ n : ... }
(лямбда сn
параметром)Для 73 байтов:
источник
Mathematica 93 байта
доходность
источник
Groovy, 72 байта
Выход
источник
Python 3,
145137135 байтовЯ пожертвовал некоторыми байтами, чтобы псевдослучайно выводить результаты при каждом запуске. Идея состоит в том, чтобы искать строчные слова длиной не менее 3 символов,
/usr/share/dict/words
а затем выбрать одно из этого списка с помощьюid([x])%99
.Правки
title()
поскольку слова не должны быть написаны заглавными буквами."\n(%c.{3,})"
(+ 3 байта), чтобы разрешить удаление,re.M
(- 5 байтов).Пример вывода:
источник
Qohele
, хотя поиск показывает, что это книга или объем священного текста.GNU sed, 81 + 1 (флаг r) = 82 байта
Это sed реализация списка слов из ответа Джонатана Аллана .
Слова, кроме разделяемой буквы
t
, приводятся в сцепленной форме в строке 1, а затем печатаются в запрошенном формате в строке 2. Присутствует завершающий символ новой строки.Выполнить :
источник
Java 7,
124121 байтНа основании @JonathanAllen ответа «s , так как Java не имеет фантазий встроенных словаря. ;) Я пытался найти другую конечную букву для всего алфавита (например,
s
илиn
илиy
), или среднюю букву (например,a
илиe
), но в большинстве из них не было только одного или двух слов, поэтому я в итогеt
тоже использовал. Слова выбираются вручную из wordhippo.com .Ungolfed:
Попробуй это здесь.
Выход:
источник
+a+++
. Мне нравится писать эти: PPHP,
91878676 байтна основе списка слов Джонатана Аллана :
старые версии, 86 байт:
или же
Беги с
-nr
.выход
Странные слова см. В ответе Измаила.
источник