Ini adalah tantangan tentang trik dan optimalisasi yang dapat digunakan saat bermain golf di Pyth. Pegolf Pyth mungkin mengenali banyak trik yang terlibat. Namun, pendekatan dan konstruksi yang tidak dikenal mungkin terlibat, jadi lihatlah Tips Pyth serta Referensi Karakter Pyth jika Anda mengalami kesulitan. Solusi dapat diuji di sini .
Sasaran: Ada 8 masalah, masing-masing dengan cuplikan Pyth untuk Anda optimalkan. Tujuan Anda adalah menciptakan sesuatu yang setara tetapi lebih pendek. Solusi referensi total 80 byte. Tujuan Anda adalah untuk mengalahkan itu sebanyak mungkin.
Pemenang akan pergi ke kiriman yang menyelesaikan semua 8 masalah dengan jumlah total byte terkecil. Tiebreaker adalah posting sebelumnya.
Menjawab: Silakan spoiler seluruh jawaban Anda, kecuali untuk skor total Anda. Ini dimaksudkan agar Anda tidak melihat jawaban orang lain sebelum mengirimkan jawaban Anda.
Setiap pengiriman harus menjawab setiap masalah dan memberikan jumlah byte yang sesuai, tetapi jangan ragu untuk menggunakan implementasi referensi jika Anda tidak dapat memperbaikinya.
Detail: Jika pertanyaan meminta nilai atau output tertentu, q
persamaan diinginkan, jadi 1
dan !0
setara. Jika pertanyaan meminta pengujian apakah suatu kondisi benar, output harus benar jika kondisi itu benar dan salah jika kondisi itu salah, tetapi tidak dibatasi di luar itu. Anda tidak boleh menukar true dengan false dan false dengan true. Jika pertanyaan meminta sesuatu untuk dicetak, tidak ada yang lain yang dapat dicetak kecuali baris baru.
Semua jawaban harus valid untuk Pyth commit terbaru pada posting pertanyaan ini.
Masalah 1: Diberikan satu set dalam Q, output daftar yang mengandung elemen Q dalam urutan apa pun.
; 3 bytes
f1Q
Masalah 2: Keluarkan daftarnya [1, 1, 0, 0, 1, 1, 0]
.
; 9 bytes
[J1JZZJJZ
Masalah 3: Diberikan bilangan bulat positif di Q, uji apakah semua digit Q positif (bukan nol).
; 7 bytes
!f!TjQT
Masalah 4: Diberikan string dalam z, uji apakah z berisi tanda kutip - "
atau '
.
; 9 bytes
|}\'z}\"z
Masalah 5: Peta Q = 1 ke 'Menang', Q = 0 ke 'Dasi' dan Q = -1 ke 'Kalah'.
; 20 bytes
@["Tie""Win""Lose")Q
Masalah 6: Cetak 0123456789
.
; 6 bytes
sm`dUT
Masalah 7: Diberikan string dalam z, hitung jumlah inversi.
(Indeks i
dan j
bentuk inversi jika i < j
tetapi z[i] > z[j]
).
; 17 bytes
ssmm>@zd@zkrdlzUz
Masalah 8: Diberikan daftar dalam z, hitung jumlah elemen yang berdekatan berulang.
; 9 bytes
lfqFT.:z2
f1Q
memfilterQ
pada fungsi yang selalu benar, sehingga selalu menampilkan setiap elemen set.f
mengeluarkan daftar, yang memenuhi tujuan dalam pertanyaan itu.Jawaban:
52 byte
sumber
54 byte
sumber
""
False karenanot ""
Benar.58 byte
sumber
V
(walaupun saya masih belum sepenuhnya memahaminya, karena Anda melakukan operasi vektor pada operan panjang yang tidak sama), jadi saya permisi untuk yang itu, tapi saya benar-benar harus memikirkanC\f
= /V
secara otomatis memotong input yang tidak samaPosting ini adalah untuk akumulasi solusi terbaik di semua jawaban. Harap edit dalam solusi dan penjawab yang pertama kali menemukan solusi jika ada peningkatan.
48 byte
sumber
57 byte
sumber
te\\st
adalah false positive.