Большую часть радиосвязи составляет фонетический алфавит НАТО , который кодирует буквы как слова, чтобы их было легче понять по коммуникациям. Ваша задача, если вы хотите это принять, - распечатать их по одному.
Вы должны напечатать эту точную строку в stdout:
A: Alfa
B: Bravo
C: Charlie
D: Delta
E: Echo
F: Foxtrot
G: Golf
H: Hotel
I: India
J: Juliet
K: Kilo
L: Lima
M: Mike
N: November
O: Oscar
P: Papa
Q: Quebec
R: Romeo
S: Sierra
T: Tango
U: Uniform
V: Victor
W: Whiskey
X: Xray
Y: Yankee
Z: Zulu
Правила:
- Ваша программа не требует ввода
- Стандартные лазейки запрещены .
- Если на вашем языке есть какие-то встроенные элементы, которые обращают буквы к их эквивалентам НАТО, вы не можете их использовать (я смотрю на вас, Mathematica).
- У вас могут быть завершающие пробелы и один завершающий символ новой строки.
A: Alpha
?Juliett
, а неJuliet
иX-ray
вместоXray
.Ответы:
Python 2 ,
189186 байтПопробуйте онлайн!
Предыдущий: (это было круто, но я понял, что более простая версия может быть сокращена на байт)
источник
Желе , 76 байт
Попробуйте онлайн!
Как?
Практически просто словарные значения и сжатие. Код между
“
и»
является просто сжатым значением, которое будет формировать строку"Alfa Bravo Charlie Delta Echo Foxtrot Golf Hotel India Juliet Kilo Lima Mike November Oscar Papa Quebec Romeo Sierra Tango Uniform Victor Whiskey Xray Yankee Zulu"
путем поиска всех слов (с префиксами с одним пробелом, за исключением"Alfa"
) в словаре Jelly (за исключением" Xray"
которого нет в словаре, поэтому прямое строковое значение" X"
и словарь запись"ray"
используется вместо).Остальная часть кода делает все остальное:
источник
Сетчатка , 156 байт
Количество байтов предполагает кодировку ISO 8859-1.
Попробуйте онлайн!
источник
05AB1E ,
10298 байтСохранено 4 байта благодаря Эрику Аутгольферу
Попробуйте онлайн!
объяснение
Использует словарное сжатие для слов в словаре 05AB1E.
По возможности использует частичное сжатие словаря для других слов.
Простые текстовые слова, где ни невозможно.
источник
”AlfaІvo¼¯¤œ®È¨›trotŠˆƒ‹Š™ÈŸt Kilo´àma—……ÍЗŽêpa¼°«Äoµ†Çâgo¸šÉµ Whiskey Xrayµ‹nkeeâ¸lu”
.pa
иli
в словаре, но я, должно быть, пропустил их. Я не считалya
иzu
словами, хотя :)Рубин, 169 знаков
( В значительной степени основаны на Jonathan Allan «s Python 2 решения. Если вам нравится идея, пожалуйста upvote оригинальный ответ.)
Образец прогона:
источник
Java 7,
242225222217 байтОбъяснение:
Тестовый код:
Попробуй это здесь.
источник
Октава,
215210209 байтСохранено 5 байтов благодаря Луису Мендо.Я спас 4 байта благодаря Луису Мендо, но изменение подхода поможет мне сохранить еще одинПопробуйте онлайн!
Если бы я избавился от пробелов, я бы сэкономил 25 байтов, но тогдамне пришлось бы использовать регулярное выражение. Само регулярное выражение будет стоить довольно много байтов, и оно также удалит заглавную букву всех слов, оставив меня со словамиlfa, ravo
и т. Д. Поэтому мне придется объединить новые строки с ведущими символами. Все это стоит байтов.Старое объяснение:
источник
'split'
было бы дольше здесь'split'
был короче: 209 :)PHP,
202227196187 байтСпасибо Dewi Morgan за сохранение 9 байтов
https://repl.it/GMkH/1
Старые версии
Спасибо manatwork и insertusername здесь за сохранение 31 байта!
https://eval.in/749541
Спасибо insertusername здесь за то, что заметил, что вывод был неверным с предыдущей версией.
https://repl.it/GKS8/3
https://repl.it/GKS8/2
источник
$a
? Просто переместите весьpreg_split()
вызов вforeach
параметр. Тогда ни одно из мест вокругas
больше не будет необходимо.PREG_SPLIT_NO_EMPTY
, лучше использовать его значение:1
. Но лично я бы настроить регулярное выражение вместо:/\B(?=[A-Z])/
.:D
Все еще привыкаю к кодгольфингуpreg_split
.echo preg_replace('/([A-Z])[a-z]+/',"$1 = $0\n",Alfa...Zulu);
Брахилог , 178 байт
Попробуйте онлайн!
объяснение
источник
PHP,
188186180174 байтабез пробелов, один перевод строки
просто заменяет все заглавные буквы в сжатой строке на
<newline><letter><colon><space><letter>
источник
gzinflate
результатомgzdeflate(Alfa...Zulu)
.and for your other question, yes, but just one.
Сборка x86, 512 байт
Скомпилировано с NASM и протестировано с QEMU. Для загрузки вам нужно поставить 2-байтовую загрузочную подпись в конце загрузочного сектора (510 байт в файл), чтобы я потерял 317 байт, заполнив скомпилированный код нулями. Это мой первый гольф, поэтому я должен извиниться за любые гигантские ошибки.
Выход
Это то, что вышеприведенный код выводит. Как видите A: Alfa отсутствует, и это потому, что длина подсказки составляет 25 строк ...
Для того, чтобы доказать , что я печататься A: Alfa я заменил
0,"ulu"
с32,"Z: Zulu"
тем чтобы Zulu одна на той же линии , как Yankee.Я был бы признателен, если бы кто-нибудь сказал мне, смогу ли я вычесть 317 байтов нулевого заполнения из моего кода, чтобы это было 195 байтов. Также, если это даже верно, потому что вывод не помещается на экране.
источник
Python 2 ,
186182 байтаПопробуйте онлайн!
источник
C (MinGW, Clang), 218 байт
Спасибо @gastropner!
Попробуйте онлайн!
C
259236 байтПопробуйте онлайн!
источник
gcc src.c
илиclang src.c
. Вот пример запуска с добавленной основной функцией, поэтому код на самом деле будет ссылаться и запускаться: ideone.com/4Eowlhf
быть заменены,main
чтобы код был действительным, или я пропускаю некоторые правила игры в гольф.i;f(){char s[]="lfa:ravo:harlie:elta:cho:oxtrot:olf:otel:ndia:uliet:ilo:ima:ike:ovember:scar:apa:uebec:omeo:ierra:ango:niform:ictor:hiskey:ray:ankee:ulu";for(i=64;++i<91;)printf("%c: %c%s\n",i,i,strtok(i^65?0:s,":"));}
Неясно, работает ли он везде: ошибки TIO, но, по крайней мере, работают в MinGW. Не вижу большой причины, почему это не сработало.Гема, 168 знаков
Образец прогона:
источник
Баш ,
224205188180 байтСпасибо Digital Trauma за удаление 17 байт, и manatwork за 8 байт.
Попробуйте онлайн!
источник
a
слишком длинный.set {A..Z};for i in lfa … ulu;{ echo $1: $1$i;shift;}
Python 2 , 198 байт
Попробуйте онлайн!
Не интересно или умно. Просто перебирает список и печатает первую букву, затем «:», затем все слово.
источник
PHP,
184 байта179 байтов,178сохранил один байт, используя preg_filter вместо preg_replace.
Оригинальный ответ
184 байта179 байтовиспользует тот факт, что он отсортирован для генерации первого символа на лету.
5 байтов сохранены @Titus.
источник
for($c=A;$s=[lfa,...,ulu][+$i++];$c++)echo"$c: $c$s\n";
. Хорошее регулярное выражение, хотя.СОГЛ , 91 байт
Объяснение:
источник
GNU sed , 165 байт
Этот сценарий основан на ответе Retina Мартина Эндера.
Попробуйте онлайн!
Объяснение:
источник
удар , 184 байта
Попробуйте онлайн!
источник
{,}
Трик в фигурных скобках является очень умным способом удвоить каждый элемент списка!Луа,
278260 байтЕще раз спасибо Manatwork за сохранение 18 байт!
Попробуйте онлайн
Старые версии
https://repl.it/GK8J
В первый раз, когда я играю на Lua, я, вероятно, могу больше играть в гольф, но я все равно решил добавить его в качестве ответа.
источник
a
? ;) Вы можете переместить объявление всего массива внутрьfor
. А синтаксисfor
..in
помогает избежать записи этих длинных индексов массива: pastebin.com/rxck79md Странная вещь Lua: если вы объявляете функцию и вызываете ее 26 раз «вручную» (я имею в виду, не в цикле), то она короче: pastebin. com / FMF9GmLJ¯\_(ツ)_/¯
по той простой причине, что я никогда раньше не использовал Lua, поэтому я просто следовал инструкции, чтобы попытаться заставить ее работать, ага. Спасибо @manatwork за информацию, я не знал об этом.Луа , 177 байт
Попробуйте онлайн!
Без завершающей строки, 180 байт:
объяснение
Он использует функцию подстановки Lua string.gsub для сопоставления шаблонов с заглавными буквами. Затем буквы заменяются требуемым форматом (плюс сами буквы). Новые строки также добавляются в тот же проход.
Подфункция в конце просто обрезает символ новой строки с начала, а также прекрасно работает, чтобы скрыть второе возвращаемое значение gsub, которое было бы количеством замен.
источник
PowerShell ,
187185 байтПопробуйте онлайн!
Циклы от
0
до25
, каждая итерация формирует$a
соответствующий капиталchar
. Затем строка соединяется с: $a
(то есть, двоеточие-пробел-буква). Затем эта строка объединяется со строкой, которая формируется путем индексации в массив, созданный путем-split
помещения фонетической строки в пробелы. Каждая из этих 26 строк остается на конвейере, и неявнаяWrite-Output
происходит при завершении программы, вставляя новую строку между элементами.Сохранено два байта благодаря @Matt.
источник
0..25|%{($a=[char]($_+65))+": $a"+(-split'lfa ravo harlie elta cho oxtrot olf otel ndia uliet ilo ima ike ovember scar apa uebec omeo ierra ango niform ictor hiskey ray ankee ulu')[$_]}
C
216215212 байтПопробуйте онлайн!
Подробная, удобочитаемая, хорошо прокомментированная и совершенно корректная (без предупреждений компилятора) версия программы находится ниже:
источник
char*s
но иprintf
там. Таким образом, сохраняются еще 3 байта - точка с запятой и 2 фигурные скобки, поскольку они нам больше не нужны, поскольку в его теле есть только одна инструкция - другойfor
цикл.JavaScript ES6,
216 187 184 180174 байтаСохранил байт благодаря Нейлу. Сохранено 5 байтов благодаря ETHproductions.
Japt , 127 байт
Попробуйте онлайн!
Сохранено 2 байта благодаря obarakon.
источник
A: A
в строку. Но вы все равно можете сохранить другой байт, используя буквальный символ новой строки вместо\n
.$&
s в ней соответствием, так что вы можете сделать, например,"\n$&: $&"
для обоих языков вместо использования функций.@"\n{X}: {X}"}
в Japt просто"\n$&: $&"
:-)" x
и вставив-x
флаг во входные данные. Обратите внимание, что флаг добавляет 1 байт к общему количеству байтов.PHP,
175171164162 байтаПримечание: больше не требуется сжатый файл, используется кодировка IBM-850.
Запустите так:
объяснение
Печатает каждый символ индивидуально (в нижнем регистре ИЛИ с пробелом). Если встречается заглавный символ, он сначала печатает строку вида "\ nA: A".
Tweaks
$l
с параметром разнесения), а не предотвращение перехода на новую строкуисточник
Japt,
216214 байтОбъяснение: Скорее всего, есть гораздо лучший способ сделать это, но, поскольку я новичок, я этого не знаю. Я в основном сжал строку с помощью Oc "и поместил эту строку для распаковки с помощью Od"
Если кто-то захочет помочь мне сэкономить байты, используя что-то отличное от разрывов строк, я буду рад узнать!
редактирование: сохранено 2 байта с использованием `вместо Od"
источник
:/
Пайк, 89 байт
источник
Qbasic, 383 байта
Не впечатляет, но для чего это стоит
источник
data
выражении тогдаread
внутриfor
...next
цикла??"A: Alfa"
и так далее всего 360 байтов?/// , 220 байт
Попробуйте онлайн!
-20 байт благодаря @ETHproductions.
источник