var QUESTION_ID=75979,OVERRIDE_USER=52353;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>
Respostas:
Geléia ,
532 bytesAgradecimentos a Dennis por salvar 2 bytes. Também obrigado a FryAmTheEggman por economizar 1 byte. Código:
Explicação:
Usa a codificação Jelly .
Experimente online!
fonte
Python 3.5, 18 bytes
Isso funciona porque
print
o separador padrão é de espaço único.fonte
print(*input(),end=' ')
seria portátil, mas não é muito golfy ...Hexagonia ,
21131210 bytesCódigo:
Economizou muitos bytes graças ao FryAmTheEggman . Código:
Ou de uma forma mais legível:
Experimente online!
Explicação:
O programa Hexagony é iniciado no canto superior esquerdo, configurando imediatamente a borda da memória com o valor ASCII de
P
80. Depois disso, podemos ver que o seguinte caminho é seguido:Podemos ver que o caminho percorrido é:
P,<;.P/0....;*/>
. Após oP
, pegamos um byte de entrada do usuário. Se estiver vazio, o seguinte ramo (<
) nos direcionaria para o Nordeste. Se a entrada não estiver vazia, o ramo nos direcionará para o sudeste. Depois disso, produzimos a entrada do usuário usando;
. Ajustamos a borda da memória de volta paraP
, que é 80. O zero seguido pelo espelho é concatenado para o nosso número, resultando em 800. Isso é gerado usando o;
comando, mas primeiro é utilizado o módulo 256, resultando em 32, que é o caractere de espaço. Depois disso, redefinimos a borda da memória usando o*
comando e retornamos ao loop pelo resto da entrada do usuário. Quando terminamos a entrada do usuário, o caminho é direcionado para o Nordeste:Isso basicamente vai para o
@
comando, que finaliza o programa.Usando Timwi incrível 's HexagonyColorer para fazer os diagramas.
fonte
P,<0/*;@.>
P,<<>0;@>*
também é 10, mas infelizmente não acho que ajude a eliminar outro byte.Haskell, 11 bytes
Exemplo de uso:
((:" ")=<<) "Code Golf"
->"C o d e G o l f "
.Mapeie cada caractere
c
para uma lista de dois elementos[c, space]
e concatene tudo em uma única lista.fonte
Retina , 5
Observe o espaço no final da segunda linha.
$&
é equivalente a$0
. Obrigado a @ mbomb007 por este link .Experimente online.
fonte
$0
. É a mesma coisa, mas mais comum.JavaScript, 20 bytes
Simples, eu gostaria que o Array.join adicionasse o espaço ao final para que eu pudesse salvar 3 bytes.
fonte
[...s,``].join` `
possivelmente?[...s,,].join
...join
função como retorno, como seria de esperar.` `
comentário.> <> ,
1310 bytes3 bytes salvos graças ao @ Sp3000
Experimente aqui . Clique no link, depois em Enviar , digite alguma entrada e pressione Dar e, finalmente, execute o programa com Iniciar ou Executar sem animação .
Explicação
fonte
i:0(?;o 'o
para 10io 'o
também funciona, errando.'
apenas envolve, empurrando caracteres até encontrar outro'
para fechá-lo. Nesse caso, a abertura e o fechamento'
s são o mesmo caractere e a maior parte do código-fonte é enviada por push, mas o caractere superior seria apenas espaço desde que foi enviado por último.Java, 132 (System.in) ou 99 (argumento do programa) bytes
Você pode sentir a sobrecarga hoje à noite?
O shooqie descobriu uma maneira mais curta de 6 bytes de fazer isso, mas não vou roubar a abordagem deles. Eu usei com as versões STDIN e lambda, no entanto.
28 caracteres para um lambda, mas que não atendem aos requisitos do programa.
fonte
replaceAll
.Cubix , 10 bytes
Cubix é uma linguagem bidimensional desenvolvida pela @ETHproductions onde os comandos são agrupados em um cubo. Experimente online
É mapeado para um cubo com comprimento de borda 2
Inicia com uma entrada
i
. O fluxo é redirecionado^
para o norte para a face superior.?
Se o valor for negativo, gire para a esquerda para terminar@
, o zero continuará para a direitaw
ou para a direita e reflita para a esquerda\
. Caractere de saída com um espaço à direitaoSo
.fonte
Cubix , 9 bytes
Veja como funciona online!
Cubix é um idioma no qual as instruções são mapeadas na face de um cubo. Este programa forma a seguinte rede de cubos:
O ponteiro de instruções começa em
i
, que pega outro código de caractere da entrada e o empurra para a pilha. Se não houver mais nenhuma entrada a ser tomada, o?
IP fica à esquerda, onde ele atinge/
e é refletido para cima@
, o que finaliza o programa.No entanto, se houver uma entrada restante, o valor será um código de caractere. Como todos os códigos de 1 caractere são positivos, o
?
IP vira à direita, onde envolve todo o cubo, passandoo
pelo caminho que gera o caractere. Em seguida, ele atinge o/
que o faz retornar>So
, o que empurra e imprime um espaço. O IP segue para o oeste até voltar para oi
retorno ao início do loop principal.1 Se o caractere for um byte nulo, ele ignorará
?
e continuará em frente, produzindo apenas um espaço.Obviamente, há muito o que uma explicação por escrito pode fazer, por isso recomendo que você a veja no intérprete on - line . Existe uma opção de "velocidade", que permite visualizar a execução tão lenta ou rapidamente quanto você desejar.
fonte
@.Uoi?So
Stax , 2 bytes
Gravatas Geléia!
Experimente em staxlang.xyz!
Tudo isso é empurrar
0
para a pilha e compactar a string da entrada padrão com ela, repetindo o 0 conforme necessário. No Stax, o ponto de código 0 em uma seqüência de caracteres geralmente é convertido em 32 (espaço).Isso é curto o suficiente para empacotá-lo e
ûT
não reduz a legibilidade.fonte
05AB1E, 4 bytes
Experimente online.
Explicação
fonte
ðâJ
não concorrente.Sðý
CJam ,
54 bytes1 byte a menos graças a @FryAmTheEggman
Experimente online!
Explicação
fonte
Java, 92
fonte
Awk, 7 bytes
(Código de 4 caracteres + opção de linha de comando de 3 caracteres.)
Exemplo de execução:
(Existe alguma discordância sobre o que deve ser incluído na contagem de opções da linha de comando. Incluí o que realmente é passado ao
awk
intérprete: “-”, “F” e um separador entre “F” e o parâmetro de string vazio. Veja abaixo o que Quero dizer.)fonte
PHP, 39 bytes
Execute-o na linha de comando
https://eval.in/541179
fonte
WhoScript 38 bytes
Funciona melhor quando a string é fornecida na linha de comando, mas também pode ser executado um caractere por vez em tempo real.
Ungolfed:
fonte
Labirinto , 10 bytes
Isso termina com um erro, mas as mensagens de erro vão para STDERR.
Experimente online!
Explicação
Este é um dos raros casos em que um programa completamente linear é viável. O loop é alcançado através dos comandos de modificação do código-fonte
<
e>
, o que funciona porque após cada iteração sabemos que a pilha está vazia novamente.<
muda ciclicamente toda a linha de uma célula para a esquerda, para terminar com:Isso leva o ponteiro de instrução (IP) para que o IP esteja agora na extremidade direita do código e precise se mover para a esquerda. Em seguida,
>
faz a modificação oposta para que o código-fonte mude de volta paraAgora, executamos uma única iteração (da direita para a esquerda), antes de tudo começar de novo:
fonte
Gema , 5 bytes
Exemplo de execução:
fonte
MATL , 7 bytes
Experimente online!
Explicação
fonte
APL, 5 bytes
São necessários 2 itens para cada caractere na sequência, com o efeito de adicionar um espaço
Para torná-lo um programa que usa stdin, é o mesmo número de bytes:
Experimente aqui .
fonte
brainfuck,
2422 bytesExemplo simples usando o menor 32 conhecido para os caracteres de espaço.
Experimente online
fonte
,[.>>-[-[-<]>>+<]>-.,]
salva dois bytes.PHP, 31 bytes
recebe entrada do argumento da linha de comando.
fonte
Threead ,
4516 Bytes não concorrentes.Recebe entrada via STDIN.
A primeira linha / fita simplesmente lê bytes de STDIN e os grava. A segunda linha, inicialmente armazena um espaço via
32c
, e ao mesmo tempo em que o próximo caractere está sendo lido, gera esse espaço.Experimente online!
fonte
Python 2,
272524 bytesMais curta que a resposta de Raffi ...
-1 graças a 60919 (FlipTack).
fonte
lambda x:' '.join(x)+' '
é 1 byte menor.C, 50 bytes
Um pouco de
main()
recursão :)Experimente online! - Se estiver usando isso em sua própria máquina, use Ctrl+ Dpara indicar EOF.
fonte
C, 56 bytes (como argumento do programa), 46 bytes (de stdin)
Resposta C simples e antiga. Uma vez compilado, o programa precisa ser chamado com uma string como seu primeiro parâmetro, uma string com espaços deve ser colocada entre aspas. Para o exemplo no post inicial:
Qual saída
Solução que lê diretamente do stdin.
Um byte a menos, graças a @FryAmTheEggman
fonte
stdin
vez de tomá-la como argumento. Além disso, aqui é uma página com algumas dicas úteis para mais de golfe em C: codegolf.stackexchange.com/q/2203/13877getchar()
é mais curto. Além disso, você não precisa da inclusão para a maioria dos compiladores C.R, 36 bytes
Exemplo:
fonte
sep=" "
, então isso pode ser muito mais curto: experimente online!Sério, 7 bytes
Experimente online!
Cara, esse espaço final necessário adicionou 3 bytes adicionais. Sem ele,
,' j
funcionaria para 4.Explicação:
fonte
GolfScript, 6 bytes
Experimente online!
fonte