Tempo per un'altra pratica Pyth. Vi presento qui 8 dichiarazioni di problemi con una soluzione Pyth ciascuna. Queste soluzioni sono scritte da un principiante di Pyth. È abbastanza contento di queste soluzioni, poiché sono molto più brevi delle sue risposte di Python. Il tuo compito comunque è mostrarlo meglio. Crea programmi equivalenti ma più brevi.
Questa è una sfida sui trucchi e le ottimizzazioni che possono essere utilizzati quando si gioca a golf in Pyth. I golfisti Pyth possono riconoscere molti dei trucchi coinvolti, che portano a soluzioni più brevi. Tuttavia, alcuni problemi richiedono alcuni approcci insoliti che vengono usati raramente. Alcuni dei trucchi che non ho mai visto in natura. Ma nessuna soluzione richiede bug o comportamenti strani, non intenzionali dei designer di Pyth. Tutte le risposte devono essere valide per il commit Pyth più recente ( 2b1562b ) al momento della pubblicazione di questa domanda. Puoi usare l' interprete Pythper i test. Al momento è aggiornato e non mi aspetto grandi cambiamenti in Pyth, che invalideranno soluzioni ottimali o renderanno possibili soluzioni più brevi. L'interprete online presenta anche il nuovo riferimento ai personaggi. Dato che è piuttosto nuovo, puoi (dovresti) usare anche i vecchi documenti , nel caso in cui qualcosa non sia corretto o mancante.
Obiettivo: le soluzioni di riferimento ammontano a 81 byte. Il tuo obiettivo è quello di batterlo il più possibile. Vince l'invio che risolve tutti gli 8 problemi con il minor numero totale di byte. Tiebreaker è la data di presentazione.
Naturalmente sono validi solo gli invii, che contengono soluzioni per tutti e 8 i problemi. È possibile utilizzare l'implementazione di riferimento, se non è possibile migliorare il punteggio di uno (o più) problemi particolari.
Le soluzioni devono stampare esattamente lo stesso risultato delle soluzioni di riferimento. Tranne una newline finale facoltativa.
Poiché questa è una pratica Pyth, sono consentiti solo i programmi scritti nella lingua Pyth.
Risposta: si prega di rovinare l'intera risposta, ad eccezione del punteggio totale. È inteso che non guardi le risposte degli altri prima di presentare le tue. Puoi creare spoiler inserendo>! di fronte a ogni linea, come:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
Spero di non aver scelto problemi troppo difficili o troppo banali. Spero che molti partecipanti e tutti possano ottenere alcune nuove informazioni su Pyth. Buon golf!
Problema 1:
Crea la seguente matrice 9x9 e stampala:
[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]
Soluzione di riferimento ( collegamento ):
V9m?>dNd0S9 (11 bytes)
Problema 2:
Stampa tutte le cifre e tutte le lettere su righe separate:
0
...
9
a
...
z
Soluzione di riferimento ( collegamento ):
VTN)VGN (7 bytes)
Problema 3:
Trova il palindromo più piccolo lessicograficamente, che è lessicograficamente più grande o uguale a una stringa di input contenente lettere minuscole ed è uguale alla stringa di input.
a -> a
abc -> aca
adcb -> adda
Soluzione di riferimento ( collegamento ):
hf&gTzqT_T^Glz (14 bytes)
Problema 4:
Controllare se un numero è compreso nell'intervallo [0, immettere il numero). Questo dovrebbe funzionare anche per i galleggianti.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Soluzione di riferimento ( collegamento ):
&gQ0<QE (7 bytes)
Il formato di riferimento è to be tested value<newline>end value
. Puoi comunque scegliere un formato di input diverso. È importante solo che tu compia la dichiarazione del problema e produca i risultati corretti.
Problema 5:
Analizzare una stringa di input del formato "\ d + [a-zA-Z] +". Si noti che il numero deve davvero essere un numero, non una stringa contenente cifre.
'123Test' -> [123, 'Test']
Soluzione di riferimento ( collegamento ):
A.ggk\Az,sGH (12 bytes)
Problema 6:
Calcola la somma dei numeri, separati da una o più virgole. Puoi presumere che ci sia almeno un numero nella stringa.
11,2,,,3,5,,8 -> 29
Soluzione di riferimento ( collegamento ):
svM:z",+"3 (10 bytes)
Problema 7:
Leggi numeri interi positivi dall'input fino a quando non ottieni il numero 0. Stampa la somma di tutti i numeri.
Soluzione di riferimento ( collegamento ):
WJE=+ZJ)Z (9 bytes)
Problema 8:
Riassumi tutti gli elementi di una matrice quadrata, tranne quelli della diagonale principale (dall'angolo superiore sinistro all'angolo inferiore destro).
Soluzione di riferimento ( collegamento ):
-ssQs.e@bkQ (11 bytes)