Başka bir Pyth alıştırması zamanı. Burada her biri Pyth çözümü olan 8 problem ifadesi sunuyorum. Bu çözümler Pyth acemi tarafından yazılmıştır. Python'un cevaplarından çok daha kısa olduğu için bu çözümler konusunda oldukça mutlu. Ancak sizin göreviniz ona daha iyi göstermek. Eşdeğer fakat daha kısa programlar oluşturun.
Bu Pyth'te golf oynarken kullanılabilecek püf noktaları ve optimizasyonlar için bir meydan okumadır. Pyth golfçüler daha kısa çözümlere yol açan püf noktalarının çoğunu tanıyabilir. Bununla birlikte, bazı problemler nadiren kullanılan bazı alışılmadık yaklaşımları gerektirecektir. Doğada hiç görmediğim bazı püf noktaları. Ancak hiçbir çözüm Pyth'un tasarımcısı (tasarımcıları) tarafından kasıtlı olmayan herhangi bir hata veya garip davranış gerektirmez. Tüm cevaplar , bu soru gönderiminden itibaren en son Pyth taahhüdü ( 2b1562b ) için geçerli olmalıdır . Pyth yorumlayıcısını kullanabilirsiniztest için. Şu anda güncel ve Pyth'te en uygun çözümleri geçersiz kılacak veya daha kısa çözümleri mümkün kılacak büyük değişiklikler beklemiyorum. Çevrimiçi tercüman ayrıca yeni Karakter Referansına sahiptir. Oldukça yeni olduğu için, bir şeylerin yanlış veya eksik olması durumunda eski belgeleri de kullanabilirsiniz (gerekir) .
Hedef: Referans çözümler toplam 81 bayttır. Amacınız bunu mümkün olduğunca yenmektir. En az toplam bayt sayısına sahip 8 sorunu da çözen başvuru kazanır. Tiebreaker teslim tarihidir.
Tabii ki, sadece 8 sorun için çözümler içeren başvurular geçerlidir. Bir (veya daha fazla) belirli bir sorunun puanını iyileştiremiyorsanız referans uygulamasını kullanabilirsiniz.
Çözümleriniz referans çözümlerle aynı çıktıyı yazmalıdır. İsteğe bağlı izleyen bir yeni satır dışında.
Bu bir Pyth uygulaması olduğundan, yalnızca Pyth dilinde yazılmış programlara izin verilir.
Cevap: Lütfen toplam puanınız hariç tüm cevabınızı şımartın. Kendinizinkini göndermeden önce diğer kişilerin cevaplarına bakmamanız amaçlanmıştır. Koyarak spoiler oluşturabilirsiniz>! Her satırın önünde, şöyle:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
Umarım çok zor veya çok önemsiz problemler seçmemişimdir. Çok sayıda katılımcı ve herkesin Pyth ile ilgili yeni bilgiler edinmesini umuyorum. Mutlu golf!
Sorun 1:
Aşağıdaki 9x9 matrisini oluşturun ve yazdırın:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
Referans çözümü ( Link ):
V9m?>dNd0S9 (11 bytes)
Sorun 2:
Tüm rakamları ve tüm harfleri ayrı satırlara yazdır:
0
...
9
a
...
z
Referans çözümü ( Link ):
VTN)VGN (7 bytes)
Sorun 3:
Sözlüksel olarak en küçük palindromu bulun; bu, küçük harf içeren bir giriş dizesinden daha büyük veya eşittir ve giriş dizesinden aynıdır.
a -> a
abc -> aca
adcb -> adda
Referans çözümü ( Link ):
hf&gTzqT_T^Glz (14 bytes)
Problem 4:
Bir sayının [0, giriş numarası) aralığında olup olmadığını kontrol edin. Bu aynı zamanda yüzmek için çalışmalı.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Referans çözümü ( Link ):
&gQ0<QE (7 bytes)
Referans formatı to be tested value<newline>end value
. Bununla birlikte, farklı bir giriş formatı seçebilirsiniz. Önemli olan, sorun bildirimini yerine getirip doğru sonuçları üretmenizdir.
Sorun 5:
"\ D + [a-zA-Z] +" biçiminde bir giriş dizesini ayrıştırın. Sayının, basamak içeren bir dize değil, gerçekten bir sayı olması gerektiğine dikkat edin.
'123Test' -> [123, 'Test']
Referans çözümü ( Link ):
A.ggk\Az,sGH (12 bytes)
Sorun 6:
Bir veya daha fazla virgülle ayrılmış sayıların toplamını hesaplayın. Dizede en az bir sayı olduğunu varsayabilirsiniz.
11,2,,,3,5,,8 -> 29
Referans çözümü ( Link ):
svM:z",+"3 (10 bytes)
Sorun 7:
0 olana kadar girişten pozitif tamsayıları okuyun. Tüm sayıların toplamını yazdırın.
Referans çözümü ( Link ):
WJE=+ZJ)Z (9 bytes)
Sorun 8:
Ana köşegen olanlar (sol üst köşe - sağ alt köşe) dışındaki bir kare matrisin tüm öğelerini toplayın.
Referans çözümü ( Link ):
-ssQs.e@bkQ (11 bytes)