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
também contém apenas o suficiente?A
por razões óbvias.U
para strings de escape Unicode (\u0041
isA
),X
para strings de escape hexadecimais (\x41
),+
para ordinais Unicode (U+0041
),&
para entidades HTML,#
pois na verdade eu não sei,65
é o ordinal decimal deA
,41
é o ordinal hexadecimal deA
,97
é o ordinal decimal dea
e0
por alguns dos motivos anteriores.Respostas:
Além disso, 1 byte
Página Esolangs Pluso .
O Pluso contém um único acumulador, que começa com o valor 1. Ele usa dois comandos, p que incrementa o acumulador (mod 27), e o que imprime o valor atual como um caractere ASCII maiúsculo, AZ ou espaço (onde 1-26 representa AZ respectivamente e 0 representam espaço).
Como o acumulador começa em 1, o comando o sem prévia p vontade saída Uma .
fonte
Python 2, 14 bytes
A expressão
3<3
fornece o booleanoFalse
e os backticks fornecem sua representação em cadeia'False'
. A partir daqui, resta extrair a cartaa
. O Python é indexado a 0, então oa
está no índice1
, que é um caractere proibido. Pode ser expresso como3-2
, mas há uma maneira mais curta. O Python permite a indexação pela parte de trás, com o índice-1
da última entrada,-2
da anterior e assim por diante. Queremos índice-4
, mas4
também é um número proibido. Mas, podemos expressá-lo como~3
usar o bit de complemento~
, o que dá-n-1
para~n
.fonte
[2]
vez de[~3]
?[1]
.1
e4
números 'banidos' ??Pitão, 2 bytes
Teste-o no Pyth Compiler .
Como funciona
fonte
PHP,
96 bytesPara 9 bytes: Inspirado na resposta de @Ton Hospel . Além disso, tem o benefício adicional de parecer um Kaomoji. :-)
A versão melhorada de 6 bytes:
em que ¾ possui o código hexadecimal de 0xBE (é importante salvar o arquivo na codificação Latin-1 , não UTF-8!).
fonte
f^E^b
.^_^
A
. Imprime=A
.=
caractere.05AB1E,
32 bytesExplicação
Experimente online
Guardado 1 byte graças a Adnan
fonte
Th
para dois bytes :)brainfuck, 16 bytes
Isso é baseado no algoritmo de troca de cérebro de Esolang para 159 .
Experimente online!
fonte
+
. (a maneira mais curta de imprimir A seria>+[+[<]>>+<+]>.
), mas graças à lista de constantes em Esolang, não é muito difícil.JavaScript (ES6),
171614 bytesEconomizou dois bytes graças a Neil!
Retorna o segundo caractere de
NaN
, que éa
.Este é o mais curto que eu pude imaginar
A
,4342 bytes:Quem disse que ser um ofuscador não ajuda no código de golfe? Eu não!
Explicações
O primeiro, em profundidade.
-_
é NaN, porque_
é indefinido. Para obter isso como uma sequência, seria necessário um dos seguintes:O último é muito longo e os primeiros usos
+
. Então, usamos o segundo. Agora, oa
está no índice1
. Isso não é bom, porque1
é proibido. No entanto, sendo uma string de modelo, podemos colocar um espaço lá para torná-lo no índice2
, deixando-nos assim` ${-_}`
.O segundo, em profundidade.
Este foi um doozy.
Este é o nono caractere da sequência interna do modelo,
-~8
sendo igual a 9. Nesse caso, essa sequência do modelo é apenas para a stringificação. Esta é a equação interna que está sendo especificada, entre${...}
:Vamos expandir um pouco isso:
Isso obtém a propriedade de uma matriz vazia. Essa propriedade é, obviamente, uma sequência de modelos, mas tem algum texto ao seu redor. É aproximadamente equivalente a:
`constr${
${!""}
[2]}ctor`Por sua vez, o interior é equivalente a:
!_
étrue
(porque_
éundefined
, e!undefined === true
) e é string"true"
. Temos o segundo caractereu
,; temos que fazê-lo dessa maneira para evitar a inserção explícita deu
nosso código.Portanto, esse bit interno é equivalente a:
Portanto, estamos obtendo o construtor da matriz, a
Array
função Não pude deixar isso explícito porque contém o proibidoA
. Agora, restringir aArray
função produz"function Array() { [native code] }"
.Voltar ao código original:
Isso é equivalente a, como vimos:
Equivalente a:
Finalmente equivalente a:
fonte
a
é um personagem proibida, e está emtoUpperCase
.Hexagonia , 4 bytes
Ayyy lmao? Muito golfe para um idioma não-golfe haha. Código:
Experimente online!
Uma forma mais legível:
Isso coloca o valor ASCII da letra
B
, que é 66, na borda da memória atual. Ele o substrata por um usuário(
e o imprime com;
. Depois disso, o programa é finalizado usando@
.Imagem do caminho obrigatório:
fonte
Geléia , 3 bytes
Experimente online!
Como funciona
Gelatina, 4 bytes
Experimente online!
Como funciona
fonte
Na verdade , 2 bytes
Experimente online!
Explicação:
fonte
CJam, 3 bytes
Experimente online!
Como funciona
fonte
Bubblegum , 1 byte
ou
Todo mundo parecia esquecer que existia ...
fonte
Perl,
98 bytesxor ainda é permitido, mas
say
não é. Assim, para 9 bytes:No entanto, o uso da saída para STDERR fornece 8 bytes:
Substitua
\x9e
e\xf5
por suas versões literais. Ou gere o arquivo executável usando:fonte
say
(contém a) para imprimir, desde que a construção do argumento não use os caracteres proibidos?print "No using the letter with code point 65";
.> <> , 6 bytes
isso cria uma sequência de caracteres, salta e cria novamente ao contrário, vira os 2 principais itens da pilha e subtrai: '|' (124) menos ';' (59) é «A» (65)
Experimente online
fonte
'$-o;|
que é quase o mesmo, mas sem o salto. (|;o-$'
também funciona).Ruby,
1512 bytesfonte
$><<
parap
, makesp to_s[-3]
p
chamainspect
seus argumentos, então a saída será citada, o que a desqualificaria.Java, 55 bytes
Como o código precisa imprimi-lo, é necessário um dos dois gravadores internos.
System.out
é, bem, fora, porque contému
.System.err
funciona, no entanto.O próximo obstáculo é o manuseio de Java
char
eint
. Como não é permitido converter parachar
porque contéma
e porque'c' - 2
é promovido paraint
, outro mecanismo é necessário.System.err
é aPrintWriter
, que tem umwrite(char)
método, mas nãowrite(int)
. Colocar'c' - 2
lá o forçachar
sem um elenco.Finalmente, toda vez que eu executava o programa, o buffer
System.err
não descarregava como deveria, e o programa não imprimia nada. Então eu tive que liberá-lo manualmente. No entanto,System.err.flush()
não é permitido, então chamei oprintln()
que implicitamente libera o fluxo subjacente.fonte
MATL, 5 bytes
Experimente Online
Explicação
Minha resposta original foi a abordagem direta, usando o literal predefinido
lY2
que produz'A'...'Z'
e, em seguida, selecionando o primeiro elemento'A'
,.fonte
Javascript,
18 bytes16 bytes12 bytes11 bytesBaseado em modificados jsfuck básico (tinha que descobrir como substituir
+
com-
).Ungolfed?
Bem, pelo menos uma versão com comentários (observe que essa versão provavelmente não será executada):
Solução antiga:
fonte
3
é permitido por isso substituiu a coisa toda com velho chato3-2
para obter1
Vim,
16 13 1110 pressionamentos de teclaAgradecimentos a H Walters por salvar duas chaves
Obrigado ao DJMcMayhem por salvar outro!
fonte
:h<cr>
tentar:h%<cr>
. Esse é um caractere extra, mas você acaba ajudando%
, com o cursor sobre um a. Então a partir daqui você pode substituir33ll
porj
.ZZ
vez de:q<cr>
salvar outro.R,
2712 bytesEDIT: Nova versão, com uma excelente ideia de @Jarko Dubbeldam
Um desafio bastante engraçado!
Basicamente, isso pega o
26th
elemento do vetor invertido que contém as letras maiúsculas (LETTERS
que é o vetor interno do R )Versão anterior s (mesmo número de bytes) :
fonte
LETTERS[T*T]
.T
avalia1
quando realiza operações numéricas.> <> ,
74 bytesEconomizou 3 bytes graças ao Teal pelican
Experimente online!
Explicação
fonte
"B"1-o;
Vim, 2 pressionamentos de tecla
vim -u NONE
em seguida, execute o seguinte (-u NONE
desativa a personalização)Quando o vim é executado no modo compatível, as teclas de seta não são interpretadas corretamente.
<up>
é interpretado,<esc>OA
deixando o seguinte no modo de inserção. O que sairia (com algumas linhas novas à direita)i
inicia o modo de inserção.<up>
sai do modo de inserção, abre uma linha acima e insere A no bufferExemplo de pessoas que encontram isso na natureza. https://stackoverflow.com/questions/6987317/ while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748
fonte
Brainfuck,
19219 bytesObrigado a @NinjaBearMonkey por me ajudar a salvar hella bytes
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------.Eu não sou bom em Brainfuck, então tenho certeza de que há uma solução mais curta, mas funciona diminuindo abaixo de 0, rolando o byte e continuando até que ele desça para 'A' e depois imprima.fonte
JavaScript (ES6), 21 bytes
Originalmente, tentei converter
false
para string para fazer isso, mas levei 23 bytes no momento. Desde então, criei uma maneira mais curta, que é isso para 14 bytes:Eu não acho que você pode obter uma maiúscula de
A
acordo com as regras, já que você precisa de umString.fromCharCode
ou dos.toUpperCase()
doisa
.fonte
C, (19?) 24 bytes
Graças a Dennis:
Mesmo comprimento:
que também permite minúsculas:
Há uma solução de 19 bytes como uma função que modifica seu parâmetro, que possui uma falha:
Se
c
foi declaradochar
,g
modifica o todoint
para esmagar a pilha que faz com que outros valores sejam modificados ou o programa seja interrompido com uma mensagem de erro. A única maneira de contornar é declararint c;
emmain
e imprimir com"%c"
, mas que se sente como uma brecha.soluções mais antigas
Apenas uma função, uma vez que
main
é proibido.fonte
88-23
deve salvar alguns bytes.printf("%c",~'ɦ');
embora o "A" tenha um acento adicionado, hehɦ
é um 2-byte caracteresdc, 4 bytes
O estouro de UCHAR_MAX rola pela tabela
seistrês vezes antes de pousar aos 65 anos.fonte
Lua, 36 bytes
Este levou-me um tempo desde que muitas das funções padrão de Lua são tomadas longe das regras (todas
math
,string.char
,string.match
,pairs
, mesmonext
)Isso tira vantagem do fato de Lua ter um global
_VERSION
que geralmente começa com "Lua" (por exemplo,Lua 5.1
ou similar para outras versões); portanto, a menos que isso seja executado em um intérprete não convencional, o terceiro caractere será um 'a'O
{...}[3]
é agrupar os resultados dosfind
quais também inclui os índices em que correspondeu e retornar o terceiro item que é o caractere correspondente (oa
)fonte
print(({type{}:find".(.)"})[3])
31 bytesHaskell, 10 bytes
Como uma função (ou melhor, uma declaração, pois nenhuma entrada é necessária)
faz o truque. Experimente em Ideone. Um programa completo é impossível, pois isso precisa conter a
main
.fonte
A
. Suas funções apenas o retornam e o programa vinculado o exibe através deputChar
quais usosu
.print
e / oudisplay
.A
deve ser impresso / exibido e não retornado.Braquilog , 4 bytes
Experimente online!
Explicação
fonte
dc,
87 bytes-1B graças a Dennis
Empurra 88, empurra 23, subtrai, deixando 65. Imprima a parte superior da pilha (65) como uma string ASCII, sem uma nova linha à direita.
Editar:
Estas são algumas das outras maneiras pelas quais inventei. Basicamente, tornou-se um jogo de "gerar os números 65 e 97 usando apenas
[238B-F]
e sem adição". Ironicamente, acho os mais longos mais interessantes.fonte