Masz dość wszystkich wyzwań związanych z codegolfem. Dlatego decydujesz się napisać program, który automatycznie zagra dla ciebie kod Pythona. Istnieją 3 przypadki testowe:
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)
Zasady:
Twój program nie może celować w kod, który specjalnie opublikowałem i powinien działać z dowolnym kodem Python 2. Zastrzegam sobie prawo do zmiany kodowanego kodu źródłowego. Możesz założyć, że nie ma łańcuchów wielowierszowych (więc nie masz zbudowanego pełnego parsera) i że locals () nie jest wywoływany.
Dane wyjściowe programu powinny działać w identyczny sposób jak oryginalny kod źródłowy. (Mianowicie, musi generować takie same dane wyjściowe. Nazwy zmiennych i konstrukcje językowe można zmieniać, o ile dane wyjściowe pozostają takie same)
Możesz użyć STDIO lub pliku, aby wprowadzić / wyprowadzić kod źródłowy.
Twój wynik będzie sumą bajtów wyniku programu.
(Powyższy kod pochodzi z http://rosettacode.org/ na licencji GNU Free Documentation License 1.2 )
if __name__ == '__main__':
miałoby wpływ na zachowanie w niektórych kontekstach, ale nie w innych. Dla innego przykładu, jeśli wejście bez golfa zakłada, że odczytuje wartość int ze standardowego wejścia i zgłasza jeden typ wyjątku, jeśli otrzyma coś innego, czy wejście do gry w golfa może rzucić inny typ wyjątku, jeśli otrzyma wartość inną niż całkowita?
random_long_variable=0;print locals()
?