Martin criou um bom snippet que pode ser usado para acompanhar a pontuação das respostas aos desafios. Isso é ótimo e tudo, mas não seria melhor se você pudesse acompanhar isso sozinho?
Crie um programa que compare as contagens de bytes em si com o restante das respostas a esta pergunta e retorne "Sou a resposta número n".
Regras:
A contagem de bytes em sua própria resposta pode ser codificada no código
A função pode levar o URL como entrada ou pode ser codificado. Os caracteres do URL não contam para a contagem de bytes, portanto, não é necessário usar um encurtador de URL.
endereços de URL para respostas não podem ser codificados
A pontuação para as respostas pode ser encontrada no cabeçalho (da mesma forma que o snippet de Martin).
O cabeçalho da resposta deve ter o formato correto (descrito abaixo).
Se for possível executar o programa online, compartilhe um link para um compilador online (ou um trecho de código que possa ser executado a partir da resposta). Se não for possível, mostre como chamar a função e mostre a saída do seu próprio compilador (no momento em que você postou a resposta. Você não precisa atualizá-la a menos que queira, é claro).
Você precisa comparar a resposta com as outras respostas a esta pergunta. Simplesmente escrever um script
I'm answer number 1.
em algum idioma não é legal.Se outras respostas tiverem o mesmo número de bytes que o seu, você poderá escolher se deseja ser o melhor ou o pior delas.
O cabeçalho deve estar formatado:
# Language Name, N bytes
Strike-through etc não pode ser usado; portanto, se o tamanho do código for alterado, mostre-o em negrito abaixo do cabeçalho ou indique-o de outra maneira.
A saída deve ser I'm answer number n.
, onde o número n
é a posição (nova linha / espaços à direita estão OK). Portanto, a resposta mais curta será exibida: "Sou a resposta número 1.", a segunda será "Sou a resposta número 2." etc.
Isso é código de golfe, então a resposta mais curta em bytes vencerá.
Respostas:
Perl, 107 bytes
Um pouco menos golfe:
Uso da amostra
fonte
Python 2, 145 bytes
Saída de 2015-10-10 17:30:00 UTC:
Não contei nenhum URL para a minha pontuação, por favor, comente o quanto devo adicionar a ele. Tem uma pontuação própria codificada nela, assume que ela já foi publicada. Quebrará se forem postadas mais de 99 respostas.
fonte
AutoIt, 175 bytes
(202 bytes - 27 para o URL)
Saída de 2015-10-09 17:47:00 UTC:
fonte
l
vez de umI
, então eu o interpretei errado. A única razão pela qual percebi isso é ver o artigo da Wikipedia , que tem uma serifa.JavaScript (ES7), 149 bytes
283 bytes - 134 para o URL. Eu nunca usei solicitações HTTP antes, mas aqui vai ...
Testado com sucesso no Firefox 41.
Primeiro, ele examina os cabeçalhos de todas as respostas para encontrar a contagem de bytes e, em seguida, encontra a primeira posição com a contagem de bytes
243149. Atualmente, está configurado para verificar apenas as 100 primeiras respostas e será interrompido se alguém tiver menos de 100 anos. bytes, mas funciona por enquanto. ;)Obrigado a @GeorgeReith pela técnica muito mais curta. Versão antiga usando AJAX (243 bytes):
fonte
If other answers have the same number of bytes as your own, you can choose if you want to be best or worse of them.
Isso ainda está no post principal; estou entendendo mal alguma coisa?PHP, 158
159164bytes127 bytes de
'http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T'
não contadosVersão formatada com seqüências de caracteres não destruídas:
$h
As seqüências de caracteres como
¶Ø’ßž‘Œˆšß‘Š’šß
são nomes constantes válidos no PHP, mas como as constantes não existem, são tratadas como cadeias literais.~
inverte-os, este para"I'm answer number "
(salvando um byte para uma aspas cada)Uso
fonte
$a
variável é realmente necessária? Por que você simplesmente não faz$h[]=json_decode(…)[items][+$i++][body]
? Quais são esses personagens estranhos, a propósito?" "
(3 bytes) pode ser reduzido para~ß
(2 bytes)json_decode
e apenassplit
sobre':'
ou algo assim, por exemplo: codepad.org/7rZg06byJavascript (ES6), 186 bytes
(335 - 149 bytes para o URL)
fonte
\x3C
vez de<
?Awk, 153 bytes
Isso deve ser salvo em um arquivo
a
e executado como:Estou subtraindo os 68 bytes
http://codegolf.stackexchange.com/questions/60204/how-are-you-doing
e adicionando 13 ao código para o bootstrappingawk -v u=
e-f a
.Menos golfe, isso pode ser ainda mais curto:
Sempre se prefere em laços. A contagem de bytes é codificada em cada um.
A versão mais golfe tem o script se chamando e produzindo o valor de saída via sistema. Em cada caso, apenas conta menos do que o incremento de valor codificado
r
, que deve ser ajustado novamente1
se estiver à frente.Isso vai deixar de encontrar corretamente bytes se há espaço em branco entre
bytes
e</h1>
e, provavelmente, uma série de outros casos eu não ter considerado.A partir de
Sun Oct 11 05:17:51 UTC 2015
, isso fornece:fonte
GNU Awk, 156 bytes
(Inspirado por n0741337 de solução Awk .)
Este faz tudo sozinho, sem executar o comando externo.
Espera nome do host e caminho como valores separados. Dado que eles estão disponíveis gratuitamente, espero que isso não viole as regras.
Exemplo de execução:
fonte