Este é um desafio sobre os truques e otimizações que podem ser usados ao jogar golfe em Pyth. Os jogadores de Pyth podem reconhecer muitos dos truques envolvidos. No entanto, abordagens e construções desconhecidas podem estar envolvidas; portanto, dê uma olhada nas Dicas do Pyth e na Referência do Personagem do Pyth, se você ficar preso. As soluções podem ser testadas aqui .
Objetivo: existem 8 problemas, cada um com um snippet Pyth para você otimizar. Seu objetivo é criar algo equivalente, mas mais curto. As soluções de referência totalizam 80 bytes. Seu objetivo é superar isso o máximo possível.
O vencedor irá para o envio que resolve todos os 8 problemas com o menor número total de bytes. O desempatador é uma publicação anterior.
Resposta: Por favor, esclareça toda a sua resposta, exceto a pontuação total. Pretende-se que você não veja as respostas de outras pessoas antes de enviar as suas.
Cada envio deve responder a todos os problemas e fornecer a contagem de bytes correspondente, mas fique à vontade para usar a implementação de referência, se você não puder melhorá-la.
Detalhes: Se a pergunta chamadas para um determinado valor ou de saída, q
a igualdade é desejado, então 1
e !0
são equivalentes. Se a pergunta exigir um teste para verificar se uma condição é verdadeira, a saída deve ser verdadeira se a condição for verdadeira e falsa se a condição for falsa, mas sem restrições além disso. Você não pode trocar true por false e false por true. Se a pergunta exigir que algo seja impresso, nada poderá ser impresso, exceto uma nova linha à direita.
Todas as respostas devem ser válidas para o Pyth commit mais recente a partir da postagem desta pergunta.
Problema 1: Dado um conjunto em Q, produza uma lista contendo os elementos de Q em qualquer ordem.
; 3 bytes
f1Q
Problema 2: Saída da lista [1, 1, 0, 0, 1, 1, 0]
.
; 9 bytes
[J1JZZJJZ
Problema 3: Dado um número inteiro positivo em Q, teste se todos os dígitos de Q são positivos (e não zero).
; 7 bytes
!f!TjQT
Problema 4: Dada uma sequência em z, teste se z contém aspas - "
ou '
.
; 9 bytes
|}\'z}\"z
Problema 5: Mapa Q = 1 para 'Ganhar', Q = 0 para 'Empate' e Q = -1 para 'Perder'.
; 20 bytes
@["Tie""Win""Lose")Q
Problema 6: Imprimir 0123456789
.
; 6 bytes
sm`dUT
Problema 7: Dada uma sequência em z, conte o número de inversões.
(Índices i
e j
formar uma inversão se i < j
mas z[i] > z[j]
).
; 17 bytes
ssmm>@zd@zkrdlzUz
Problema 8: Dada uma lista em z, conte o número de elementos adjacentes repetidos.
; 9 bytes
lfqFT.:z2
f1Q
filtraQ
uma função que é sempre verdadeira, portanto sempre gera todos os elementos do conjunto.f
gera uma lista, que atende ao objetivo nessa pergunta.Respostas:
52 bytes
fonte
54 bytes
fonte
""
é False porquenot ""
é True.58 bytes
fonte
V
(embora ainda não o entenda completamente, já que você está fazendo operações vetoriais em operandos de comprimento desigual), então sou desculpado por isso, mas eu realmente deveria ter pensado emC\f
= /V
trunca automaticamente entradas desiguaisEste post é para o acúmulo das melhores soluções em todas as respostas. Edite na solução e o responsável pela resposta que encontrou a solução pela primeira vez, se houver alguma melhoria.
48 bytes
fonte
57 bytes
fonte
te\\st
é um falso positivo.