var QUESTION_ID=90349,OVERRIDE_USER=58717;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
a
также достаточно хорошо?A
по понятным причинам.U
для escape-строк Unicode (\u0041
isA
),X
для escape-строк hex (\x41
),+
для ординалов Unicode (U+0041
),&
для сущностей HTML,#
поскольку я на самом деле не знаю,65
является ли десятичным порядковым числомA
,41
является шестнадцатеричным порядковым числомA
,97
является десятичным порядковым числомa
и0
по нескольким из предыдущих причин.Ответы:
Плюс, 1 байт
Плюс Эсолангс .
Pluso содержит один аккумулятор, который начинается со значения 1. Он использует две команды: p, который увеличивает накопитель (mod 27), и o, который печатает текущее значение в виде символа ASCII в верхнем регистре, AZ или пробела (где 1-26 представляет AZ соответственно и 0 представляет пробел).
Как начинается аккумулятор на 1, то команда о без предварительного р будет выводить A .
источник
Python 2, 14 байт
Выражение
3<3
дает логическое значениеFalse
, а обратные галочки дают его строковое представление'False'
. Отсюда осталось извлечь письмоa
. Python имеет индекс 0, поэтому онa
имеет индекс1
, который является запрещенным символом. Это можно выразить как3-2
, но есть более короткий путь. Python позволяет индексировать сзади, с индексом-1
для последней записи,-2
для предыдущей записи и так далее. Мы хотим индекс-4
, но4
это также запрещенный номер. Но мы можем выразить это как~3
использование битового дополнения~
, которое дает-n-1
для~n
.источник
[2]
вместо[~3]
?[1]
.1
и4
"забанены" номера ??Pyth, 2 байта
Проверьте это в компиляторе Pyth .
Как это устроено
источник
PHP,
96 байтДля 9 байтов: вдохновлено ответом @Ton Hospel . Плюс, у этого есть дополнительное преимущество того, чтобы выглядеть немного как Kaomoji. :-)
6-байтовая улучшенная версия:
где ¾ имеет шестнадцатеричный код 0xBE (важно сохранить файл в кодировке Latin-1 , а не в UTF-8!).
источник
f^E^b
.^_^
A
. Это печатает=A
.=
символ.05AB1E,
32 байтаобъяснение
Попробуйте онлайн
Спас 1 байт благодаря Аднану
источник
Th
на два байта :)мозговой трах, 16 байтов
Это основано на алгоритме мозга Эсоланга для 159 .
Попробуйте онлайн!
источник
+
. (самый короткий способ напечатать A был бы>+[+[<]>>+<+]>.
), но благодаря списку констант на Esolang, не слишком сложно.JavaScript (ES6),
171614 байтСпасено два байта благодаря Нейлу!
Возвращает второй символ
NaN
, который естьa
.Это самое короткое, что я мог придумать
A
,4342 байта:Кто сказал, что обфускатор не помогает в коде гольф? Не я!
Пояснения
Первый, в глубину.
-_
является NaN, потому что_
не определено. Чтобы получить это как строку, нужно одно из следующего:Последний слишком длинный, а первый использует
+
. Итак, мы используем второй. Теперьa
индекс1
. Это не хорошо, потому что1
это запрещено. Однако, будучи строкой шаблона, мы можем поместить туда пробел, чтобы сделать его по индексу2
, что оставляет нас с` ${-_}`
.Второй, в глубине.
Этот был чокнутым.
Это 9-й символ внутренней строки шаблона,
-~8
равный 9. В этом случае эта строка шаблона предназначена только для строкового преобразования. Это внутреннее уравнение, подвергаемое строковому разделению${...}
:Давайте немного расширим это:
Это получает свойство из пустого массива. Это свойство, конечно, строка шаблона, но вокруг него есть текст. Это примерно эквивалентно:
`constr${
${!""}
[2]}ctor`Внутри в свою очередь эквивалентно:
!_
естьtrue
(потому что_
естьundefined
, и!undefined === true
), и строковое это"true"
. Мы получаем второй персонаж этогоu
; мы должны получить это таким образом, чтобы избежать явного включенияu
нашего кода.Итак, этот внутренний бит эквивалентен:
Итак, мы получаем конструктор массива,
Array
функцию. Я не мог выразить это явно, потому что он содержит запрещенноеA
. Теперь строковаяArray
функция дает"function Array() { [native code] }"
.Вернуться к исходному коду:
Это эквивалентно, как мы уже видели:
Эквивалентно:
Наконец эквивалентно:
источник
a
Это запрещенный символ и находится вtoUpperCase
.Гексагония , 4 байта
Ayyy LMAO? Довольно гольф для языка не-гольф хаха. Код:
Попробуйте онлайн!
Более читаемая форма:
Это помещает значение ASCII буквы
B
, которое составляет 66, на текущий край памяти. Это вычитает это одним использованием(
и печатает это с;
. После этого программа прекращается с помощью@
.Обязательный путь изображения:
источник
Желе , 3 байта
Попробуйте онлайн!
Как это устроено
Желе, 4 байта
Попробуйте онлайн!
Как это устроено
источник
На самом деле , 2 байта
Попробуйте онлайн!
Объяснение:
источник
CJam, 3 байта
Попробуйте онлайн!
Как это устроено
источник
Жевательная резинка , 1 байт
или же
Все, казалось, забыли о его существовании ...
источник
Perl,
98 байтxor все еще разрешен, но
say
нет. Итак, для 9 байтов:Однако использование вывода в STDERR дает 8 байтов:
Замените
\x9e
и\xf5
их буквальными версиями. Или сгенерируйте исполняемый файл, используя:источник
say
(содержит a) для печати, пока конструкция аргумента не использует запрещенные символы?print "No using the letter with code point 65";
.> <> , 6 байт
это создает строку символов, отскакивает и создает ее снова в обратном порядке, переворачивает 2 верхних элемента стека и вычитает: '|' (124) минус ';' (59) - «А» (65)
Попробуйте онлайн
источник
'$-o;|
что почти то же самое, но без подпрыгивания. (|;o-$'
также работает.)Рубин,
1512 байтисточник
$><<
наp
, делаетp to_s[-3]
p
вызываетinspect
свои аргументы, поэтому вывод будет заключен в кавычки, что приведет к его дисквалификации.Java, 55 байт
Поскольку код должен его печатать, требуется один из двух встроенных писателей.
System.out
хорошо, потому что он содержитu
.System.err
работает, однако.Следующим препятствием является обработка Java в
char
иint
. Поскольку он не может быть приведен к типу,char
потому что он содержитa
, а также потому, что'c' - 2
его повышают, требуетсяint
другой механизм.System.err
этоPrintWriter
, у которого естьwrite(char)
метод, но нетwrite(int)
. Помещение'c' - 2
туда заставляет егоchar
без броска.Наконец, каждый раз, когда я запускал программу, буфер для
System.err
нее не сбрасывался, как предполагалось, и программа ничего не печатала. Поэтому мне пришлось промыть его вручную. ТемSystem.err.flush()
не менее, это не разрешено, поэтому я назвал,println()
который неявно сбрасывает базовый поток.источник
MATL, 5 байтов
Попробуйте онлайн
объяснение
Мой первоначальный ответ был прямой подход с использованием предварительно определенных буквальным ,
lY2
который дает ,'A'...'Z'
а затем выбрать первый элемент,'A'
.источник
Javascript,
18 байтов16 байтов12 байтов11 байтовОснован на модифицированных основах jsfuck (пришлось выяснить, как заменить
+
на-
).Ungolfed?
Ну, по крайней мере, версия с комментариями (обратите внимание, что эта версия, вероятно, не будет работать):
Старое решение:
источник
3
это разрешено, поэтому заменил все это скучным старым,3-2
чтобы получить1
Вим,
16 13 1110 нажатий клавишСпасибо H Walters за сохранение двух ключей
Спасибо DJMcMayhem за сохранение другого!
источник
:h<cr>
, чтобы попробовать:h%<cr>
. Это еще один дополнительный символ, но вы попадаете на помощь для%
, с вашим курсором прямо над a. Отсюда вы можете заменить33ll
наj
.ZZ
вместо того,:q<cr>
чтобы сохранить другой.R,
2712 байтРЕДАКТИРОВАТЬ: Новая версия, от отличной идеи от @Jarko Dubbeldam
Довольно забавный вызов!
В основном, это берет
26th
элемент обратного вектора, содержащий заглавные буквы (LETTERS
который является встроенным вектором R )Предыдущая версия s (такое же количество байтов) :
источник
LETTERS[T*T]
.T
оценивает1
при выполнении числовых операций.> <> ,
74 байтаСохранено 3 байта благодаря Teal pelican
Попробуйте онлайн!
объяснение
источник
"B"1-o;
Vim, 2 нажатия клавиш
vim -u NONE
затем выполните следующее (-u NONE
отключает настройку)Когда vim работает в совместимом режиме, клавиши со стрелками интерпретируются неправильно.
<up>
интерпретируется,<esc>OA
оставляя следующее в режиме вставки. Который ушел бы (с парой завершающих строк)i
запускает режим вставки.<up>
выходит из режима вставки, открывает строку выше и вводит A в буферПример людей, сталкивающихся с этим в дикой природе. https://stackoverflow.com/questions/6987317/while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748
источник
Brainfuck,
19219 байтовСпасибо @NinjaBearMonkey за помощь в сохранении байтов hella
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------.Я не очень хорош в Brainfuck, поэтому я уверен, что есть более короткое решение, но оно работает, уменьшая значение ниже 0, переворачивая байт и продолжая, пока он не опустится до «A», затем напечатает.источник
JavaScript (ES6), 21 байт
Первоначально я попытался преобразовать
false
в строку, чтобы сделать это, но это заняло у меня 23 байта в то время. С тех пор я придумал более короткий путь: 14 байт:Я не думаю, что вы можете получить заглавные буквы в
A
соответствии с правилами, так как вам нужен одинString.fromCharCode
или.toUpperCase()
оба, которые содержатa
.источник
C, (19?) 24 байта
Спасибо Деннису:
той же длины:
что позволяет также в нижнем регистре:
Существует 19-байтовое решение как функция, модифицирующая свой параметр, который имеет недостаток:
Если
c
было объявленоchar
,g
изменяет целоеint
таким образом, что он разбивает стек, что приводит к изменению других значений или отмене программы с сообщением об ошибке. Единственный способ обойти это объявитьint c;
вmain
и печати с"%c"
, но чувствует себя лазейку.старые решения
Просто функция, так как
main
это запрещено.источник
88-23
следует сохранить несколько байтов.printf("%c",~'ɦ');
хотя к «А» будет добавлен знак акцента хеɦ
- двухбайтовый символпостоянный ток, 4 байта
Переполнение UCHAR_MAX катится через стол
шестьтри раза перед приземлением в 65.источник
Луа, 36 байт
Это один взял меня некоторое время , так как многие из стандартных функций Lua отнимаются от правил (все
math
,string.char
,string.match
,pairs
, дажеnext
)Это использует тот факт, что Lua имеет глобальную переменную,
_VERSION
которая обычно начинается с «Lua» (например,Lua 5.1
или аналогично для других версий), поэтому, если он не запущен на неосновном интерпретаторе, третий символ будет «a»Он
{...}[3]
должен сгруппировать результаты,find
которые также включают индексы, с которыми он соответствует, и затем вернуть третий элемент, который является соответствующим символом (thea
)источник
print(({type{}:find".(.)"})[3])
31 байтHaskell, 10 байт
Как функция (или, скорее, оператор, поскольку ввод не требуется)
делает трюк. Попробуйте это на Ideone. Полная программа невозможна, так как она должна содержать
main
.источник
A
. Ваши функции просто возвращают его, и связанная программа отображает его, используяputChar
которыйu
.print
и / илиdisplay
.A
должен быть напечатан / отображен и не возвращен.Брахилог , 4 байта
Попробуйте онлайн!
объяснение
источник
Округ Колумбия,
87 байт-1B благодаря Денису
Толкает 88, толкает 23, вычитает, оставляя 65. Выведите верхнюю часть стека (65) в виде строки ASCII, без завершающей строки.
Редактировать:
Вот несколько других способов, которыми я придумал. По сути, это игра «генерировать числа 65 и 97, используя только
[238B-F]
и без дополнений». По иронии судьбы, я нахожу самые длинные из них наиболее интересными.источник