あなたはすべてのcodegolfの課題にうんざりしています。そのため、Pythonコードを自動的にゴルフするプログラムを作成することにします。3つのテストケースがあります。
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)
ルール:
あなたのプログラムは、私が特別に投稿したコードをターゲットにしてはならず、Python 2コードで動作するはずです。コードゴルフされているソースコードを変更する権利を留保します。複数行の文字列は存在せず(したがって、本格的なパーサーを構築していない)、locals()は呼び出されないと想定することができます。
プログラムの出力は、元のソースコードと同じ方法で実行する必要があります。(つまり、同じ出力を生成する必要があります。出力が同じである限り、変数名と言語構成は変更できます)
STDIOまたはファイルを使用して、ソースコードの入出力を行うことができます。
スコアは、プログラムの出力のバイトの合計になります。
(上記のコードは、GNU Free Documentation License 1.2の下でhttp://rosettacode.org/から取られています)
if __name__ == '__main__':
は一部のコンテキストの動作に影響を与えるが、他のコンテキストには影響を及ぼさないと考えています。別の例として、ungolfed入力がstdinからintを読み取り、他の何かが与えられた場合に1つのタイプの例外をスローすると仮定した場合、非整数が与えられた場合、golfed入力は異なるタイプの例外をスローできますか?
random_long_variable=0;print locals()
ですか?