Bu Pyth golf yaparken kullanılabilecek hileler ve optimizasyonlar için bir meydan okuma. Pyth golfçüleri hilelerin çoğunu tanıyabilir. Ancak, alışılmadık yaklaşımlar ve yapılar bu yüzden bir göz atın, sorumluluk taşıyor olabilirler Pyth İpuçları yanı sıra Pyth Karakter Referans eğer takılıyorum. Çözümler burada test edilebilir .
Hedef: Her biri optimize etmeniz için bir Pyth snippet'ine sahip 8 sorun var. Amacınız eşdeğer ancak daha kısa bir şey yaratmaktır. Referans çözeltiler toplam 80 byte. Amacınız bunu mümkün olduğunca geçmektir.
Kazanan, en az toplam bayt sayısı ile 8 sorunun hepsini çözen gönderime gidecek. Tiebreaker daha önceki gönderi.
Cevaplama: Lütfen toplam puanınız hariç tüm yanıtınızı bozun. Kendi yanıtınızı göndermeden önce başkalarının cevaplarına bakmamanız amaçlanmıştır.
Her gönderim her sorunu yanıtlamalı ve karşılık gelen bayt sayısını vermelidir, ancak onu geliştiremezseniz referans uygulamasını kullanmaktan çekinmeyin.
Detaylar: Belirli bir değer veya çıkış için soru aramaları, varsa q
eşitlik isteniyorsa, bu yüzden 1
ve !0
eşdeğerdir. Soru, bir koşulun doğru olup olmadığını test etmek istiyorsa, koşul doğruysa çıktı doğru olmalı ve koşul yanlışsa, ancak bunun ötesinde kısıtlamasız olmalıdır. False için true ve true için false değiştiremezsiniz. Soru bir şeyin yazdırılmasını gerektiriyorsa, sondaki yeni satır dışında başka hiçbir şey yazdırılamaz.
Tüm cevaplar , bu sorunun gönderilmesinden itibaren en son Pyth taahhüdü için geçerli olmalıdır .
Sorun 1: Q'da bir küme verildiğinde, Q öğelerini herhangi bir sırayla içeren bir liste çıkarın.
; 3 bytes
f1Q
Sorun 2: Listeyi çıktılayın [1, 1, 0, 0, 1, 1, 0]
.
; 9 bytes
[J1JZZJJZ
Problem 3: Q'da pozitif bir tamsayı verildiğinde, Q'nun tüm basamaklarının pozitif olup olmadığını test edin (sıfır değil).
; 7 bytes
!f!TjQT
Sorun 4: z'de bir dize verildiğinde, z'nin tırnak işareti içerip içermediğini test edin - "
veya '
.
; 9 bytes
|}\'z}\"z
Problem 5: Q = 1'i 'Kazanma', Q = 0'ı 'Bağlama' ve Q = -1'i 'Kaybetme' olarak eşleyin.
; 20 bytes
@["Tie""Win""Lose")Q
Sorun 6: Yazdırın 0123456789
.
; 6 bytes
sm`dUT
Sorun 7: Z olarak bir dize verildiğinde, ters çevirme sayısını sayın.
(Dizinler i
ve j
eğer bir inversiyon oluşturur i < j
fakat z[i] > z[j]
).
; 17 bytes
ssmm>@zd@zkrdlzUz
Sorun 8: z cinsinden bir liste verildiğinde, tekrarlanan bitişik elemanların sayısını sayın.
; 9 bytes
lfqFT.:z2
f1Q
filtrelerQ
, böylece her zaman kümenin tüm öğelerini çıktılar.f
bu sorudaki amacı karşılayan bir liste çıkarır.