Crie um programa que encontre os 50 desafios mais recentes com a tag code-golf que possui pelo menos 20 respostas. Em seguida, extraia as pontuações para cada idioma em cada um dos desafios. Se houver mais de uma resposta usando o mesmo idioma, conte todas as pontuações. Posteriormente, pegue os 20 principais idiomas mais comuns e produza uma lista com os nomes dos idiomas, o número de respostas, a contagem média de bytes e a contagem média de bytes. A lista deve ser classificada por número de respostas, em ordem decrescente.
Você deve considerar as variações de letras maiúsculas (por exemplo: Matlab = MATLAB).
Em idiomas com muitos números de versão diferentes (por exemplo, Python), conte-os como idiomas únicos, portanto: Python != Python 2 != Python 2.7 != Python 3.x
Exemplo de saída (o formato de saída é opcional):
cJam, 66, 12.4, 8.5
Pyth, 58, 15.2, 19
Ruby, 44, 19.2, 22.5
Python, 34, 29.3, 32
Python 2.7, 22, 31.2, 40
...
...
Java, 11, 115.5, 94.5
Formatos de cabeçalho que devem ser suportados:
- Começa com
# Language name,
ou#Language name
- Termina com
xx bytes
,xx Bytes
ou apenasxx
- Pode haver muito lixo entre a primeira vírgula e o último número.
- Se o nome do idioma for um link (
[Name](link)
), ele poderá ser ignorado
Se a resposta tiver outro formato de cabeçalho, você poderá ignorá-la (ou incluí-la se o seu código puder lidar com isso).
Como exemplo, todos os cabeçalhos abaixo devem ser suportados:
# Language Name, N bytes
# Ruby, <s>104</s> <s>101</s> 96 bytes
# Perl, 43 + 2 (-p flag) = 45 Bytes
# MATLAB, 5
Regras:
- Não há problema em usar a API ou apenas o URL do site
- O seguinte pode ser extraído da contagem de bytes (nada mais), portanto, não é necessário usar um encurtador de URL (máximo de 44 bytes):
https://
(ouhttp://
)codegolf
.stackexchange.com
/questions
- O seguinte pode ser extraído da contagem de bytes (nada mais), portanto, não é necessário usar um encurtador de URL (máximo de 44 bytes):
- O programa pode receber entrada. A entrada será incluída na contagem de bytes.
Fora isso, aplicam-se regras padrão.
xx bytes
é muito comum em desafios recentes (pelo menos desde que o snippet do placar de líderes foi criado).Respostas:
R, 821 - 44 = 777 bytes
Resultados atualizados : consulte o histórico de edições para entender todos os comentários abaixo.
O código, que eu poderia reduzir um pouco mais:
De-golfe:
fonte
Python 2, 934 - 44 (material da url) = 890 bytes
Usando a API:
Observe que esse código não presta atenção à otimização da API.
Saída:
fonte
/questions
redução.bytes
, enquanto o meu manipula outros sufixos comochars
.l=re.sub("# ?|,","",l)
é o que substitui C # com C.