Hora de outra prática de Pyth. Apresento aqui 8 declarações de problemas com uma solução Pyth cada. Essas soluções são escritas por um iniciante em Pyth. Ele está muito feliz com essas soluções, pois são muito mais curtas que as respostas do Python. Sua tarefa, porém, é mostrá-lo melhor. Crie programas equivalentes, mas mais curtos.
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, que levam a soluções mais curtas. No entanto, alguns problemas exigirão algumas abordagens incomuns que raramente são usadas. Alguns dos truques que eu realmente nunca vi na natureza. Mas nenhuma solução requer erros ou comportamento estranho, que não foi intencional pelo (s) projetista (s) de Pyth. Todas as respostas devem ser válidas para o Pyth commit mais recente ( 2b1562b ) a partir da postagem desta pergunta. Você pode usar o intérprete Pythpara teste. Ele está atualizado no momento e não espero grandes mudanças no Pyth, que invalidem as soluções ideais ou tornem possíveis soluções mais curtas. O intérprete online também apresenta a nova referência de personagem. Como é bastante novo, você também pode (deve) usar os documentos antigos , caso algo esteja incorreto ou ausente.
Objetivo: as soluções de referência totalizam 81 bytes. Seu objetivo é superar isso o máximo possível. A submissão que resolve todos os 8 problemas com o menor número total de bytes vence. O desempate é a data de envio.
Obviamente, apenas os envios são válidos, que contêm soluções para todos os 8 problemas. Você pode usar a implementação de referência, se não puder melhorar a pontuação de um (ou mais) problema específico.
Suas soluções devem imprimir exatamente a mesma saída que as soluções de referência. Exceto por uma nova linha opcional à direita.
Como essa é uma prática Pyth, somente programas escritos no idioma Pyth são permitidos.
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. Você pode criar spoilers colocando>! na frente de cada linha, como:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
Espero não ter escolhido problemas muito difíceis ou triviais. Esperando que muitos participantes e que todos obtenham algumas novas idéias sobre Pyth. Feliz golfe!
Problema 1:
Crie a seguinte matriz 9x9 e imprima-a:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
Solução de referência ( Link ):
V9m?>dNd0S9 (11 bytes)
Problema 2:
Imprima todos os dígitos e letras em linhas separadas:
0
...
9
a
...
z
Solução de referência ( Link ):
VTN)VGN (7 bytes)
Problema 3:
Encontre o palíndromo lexicograficamente menor, que é lexicograficamente maior ou igual a uma sequência de entrada que contém letras minúsculas e é a mesma que a sequência de entrada.
a -> a
abc -> aca
adcb -> adda
Solução de referência ( Link ):
hf&gTzqT_T^Glz (14 bytes)
Problema 4:
Verifique se um número está no intervalo [0, número de entrada). Isso também deve funcionar para carros alegóricos.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Solução de referência ( Link ):
&gQ0<QE (7 bytes)
O formato de referência é to be tested value<newline>end value
. No entanto, você pode escolher um formato de entrada diferente. Importante é apenas que você realize a declaração do problema e produza os resultados corretos.
Problema 5:
Analise uma sequência de entrada do formato "\ d + [a-zA-Z] +". Observe que o número realmente precisa ser um número, não uma sequência contendo dígitos.
'123Test' -> [123, 'Test']
Solução de referência ( Link ):
A.ggk\Az,sGH (12 bytes)
Problema 6:
Calcule a soma dos números separados por uma ou várias vírgulas. Você pode assumir que há pelo menos um número na string.
11,2,,,3,5,,8 -> 29
Solução de referência ( Link ):
svM:z",+"3 (10 bytes)
Problema 7:
Leia números inteiros positivos da entrada até obter o número 0. Imprima a soma de todos os números.
Solução de referência ( Link ):
WJE=+ZJ)Z (9 bytes)
Problema 8:
Resuma todos os elementos de uma matriz quadrada, exceto os da diagonal principal (canto superior esquerdo e canto inferior direito).
Solução de referência ( Link ):
-ssQs.e@bkQ (11 bytes)