Sei stufo di tutte le sfide di codegolf. Quindi decidi di scrivere un programma che eseguirà automaticamente il golf del codice Python per te. Esistono 3 casi di test:
print quickSort([0,7,3,-1,8,10,57,2])
def quickSort(arr):
less = []
pivotList = []
more = []
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
for i in arr:
if i < pivot:
less.append(i)
elif i > pivot:
more.append(i)
else:
pivotList.append(i)
less = quickSort(less)
more = quickSort(more)
return less + pivotList + more
for i in xrange(1, 101):
if i % 15 == 0:
print "FizzBuzz"
elif i % 3 == 0:
print "Fizz"
elif i % 5 == 0:
print "Buzz"
else:
print i
from sys import argv
def randomGenerator(seed=1):
max_int32 = (1 << 31) - 1
seed = seed & max_int32
while True:
seed = (seed * 214013 + 2531011) & max_int32
yield seed >> 16
def deal(seed):
nc = 52
cards = range(nc - 1, -1, -1)
rnd = randomGenerator(seed)
for i, r in zip(range(nc), rnd):
j = (nc - 1) - r % (nc - i)
cards[i], cards[j] = cards[j], cards[i]
return cards
def show(cards):
l = ["A23456789TJQK"[c / 4] + "CDHS"[c % 4] for c in cards]
for i in range(0, len(cards), 8):
print " ", " ".join(l[i : i+8])
if __name__ == '__main__':
seed = int(argv[1]) if len(argv) == 2 else 11982
print "Hand", seed
deck = deal(seed)
show(deck)
Regole:
Il tuo programma non deve avere come target il codice che ho pubblicato in modo specifico e dovrebbe funzionare con qualsiasi codice Python 2. Mi riservo il diritto di modificare il codice sorgente in fase di codegolf. Puoi presumere che non ci siano stringhe multilinea (quindi non hai creato un parser completo) e che i locali () non vengono chiamati.
L'output del programma dovrebbe essere eseguito in modo identico al codice sorgente originale. (Vale a dire, deve produrre lo stesso output. I nomi delle variabili e i costrutti della lingua possono essere modificati, purché l'output rimanga lo stesso)
È possibile utilizzare STDIO o un file per eseguire l'input / output del codice sorgente.
Il tuo punteggio sarà la somma dei byte dell'output del tuo programma.
(Il codice sopra elencato è stato preso da http://rosettacode.org/ sotto la GNU Free Documentation License 1.2 )
if __name__ == '__main__':
influirebbe sul comportamento in alcuni contesti ma non in altri. Per un altro esempio, se l'input non golfizzato presuppone che legga un int da stdin e genera un tipo di eccezione se viene fornito qualcos'altro, l'input golfizzato può generare un diverso tipo di eccezione se viene assegnato un numero intero?
random_long_variable=0;print locals()
:?