これは、Pythでゴルフするときに使用できるトリックと最適化に関する課題です。Pythゴルファーは、関係するトリックの多くを認識しているかもしれません。ただし、馴染みのないアプローチや構成が含まれる可能性があるので、行き詰まった場合はPythのヒントとPythのキャラクターリファレンスをご覧ください。ソリューションはここでテストできます。
目標: 8つの問題があり、それぞれに最適化するPythスニペットがあります。あなたの目標は、同等で短いものを作成することです。参照ソリューションは合計80バイトです。あなたの目標は、それを可能な限り上回ることです。
勝者は、最小の合計バイト数で8つの問題すべてを解決する提出物に行きます。タイブレイカーは以前の投稿です。
回答:合計スコアを除いて、回答全体を台無しにしてください。自分の答えを提出する前に、他の人の答えを見ないことが意図されています。
送信ごとにすべての問題に回答し、対応するバイト数を提供する必要がありますが、改善できない場合はリファレンス実装を自由に使用してください。
詳細:質問で特定の値または出力q
が必要な場合は、同等であることが望ましいため1
、!0
同等です。質問が条件が真であるかどうかのテストを要求する場合、出力は、条件が真である場合は真実であり、条件が偽である場合は偽である必要がありますが、それ以上制約はありません。trueをfalseに、falseをtrueに交換することはできません。質問で印刷する必要がある場合、末尾の改行以外は印刷できません。
すべての回答は、この質問の投稿時点での最新のPythコミットに対して有効である必要があります。
問題1: Qのセットを指定して、任意の順序でQの要素を含むリストを出力します。
; 3 bytes
f1Q
問題2:リストを出力します[1, 1, 0, 0, 1, 1, 0]
。
; 9 bytes
[J1JZZJJZ
問題3: Qに正の整数を指定して、Qのすべての桁が正(ゼロではない)かどうかをテストします。
; 7 bytes
!f!TjQT
問題4: zの文字列を指定して、zに引用符が含まれているかどうかをテストします- "
または'
。
; 9 bytes
|}\'z}\"z
問題5: Q = 1を「Win」に、Q = 0を「Tie」に、Q = -1を「Lose」にマップします。
; 20 bytes
@["Tie""Win""Lose")Q
問題6:印刷0123456789
。
; 6 bytes
sm`dUT
問題7: zの文字列を指定して、反転の数を数えます。
(インデックスi
とj
ならば反転を形成するi < j
が、z[i] > z[j]
)。
; 17 bytes
ssmm>@zd@zkrdlzUz
問題8: zのリストを指定して、隣接する繰り返し要素の数を数えます。
; 9 bytes
lfqFT.:z2
f1Q
フィルタリングQ
するため、常にセットのすべての要素を出力します。f
その質問の目的を満たすリストを出力します。