Catatan untuk Moderator dan editor : Judul posting ini untuk efek dan tidak boleh diubah. Ejaan salah disengaja dan merupakan bagian dari tantangan.
Backstory
Soal SO buruk (stereo) menanyakan sesuatu di sepanjang baris "tlg kirim tlg kodez!" Dengan kata lain, itu meminta seseorang untuk melakukan pekerjaan untuk penanya dan memberikan solusi lengkap untuk masalah satu kali. Saya mengutip pertanyaan ini di Meta.SE :
... tentang kategori pertanyaan tertentu yang terdiri dari sama sekali tidak ada penelitian, tidak ada usaha, dan hanya meminta solusi lengkap untuk masalah. Jenis pertanyaan ini umumnya cenderung mengasumsikan bahwa Stack Overflow adalah layanan pengkodean gratis ...
Jadi apa tantangan Anda yang sebenarnya? Itu mudah:
Program atau fungsi Anda, dll. Harus mengambil input sebagai string (dari STDIN, parameter, dll.) Dan jika string berisi Plz send teh codez!
output -1 flag comment
(downvote, tandai sebagai off-topic, dan komentar tentang seberapa buruk pertanyaan itu.) Jika tidak output +1
(Anda upvoting).
Tapi tunggu ... masih ada lagi!
Program Anda tidak boleh mengandung 5 atau lebih dari rangkaian karakter ini:
- Semua karakter khusus (apa pun yang bukan spasi, baris baru (
0x0a
), alfabet case-sensitive, atau digit) - Digit apa saja (0-9)
- Salah satu dari
pzcm
(case-insensitive) - Salah satu dari
hten
(case-insensitive) - Salah satu dari
qwryuioasdfgjklxvb
- Salah satu dari
QWRYUIOASDFGJKLXVB
Agar jelas, Anda hanya dapat menggunakan hingga 4 dari rangkaian karakter itu.
Spasi, tab, dan baris baru tidak dibatasi dengan cara apa pun, tetapi masih termasuk dalam jumlah byte Anda
Pembatasan akhir
Program Anda harus mengandung Unicode ONLY dalam kisaran 0x20
(spasi) hingga 0x7e
(~), serta 0x0a
(baris baru LF) dan 0x09
(tab). Ini untuk mengecualikan bahasa kode golf dan memberikan bahasa tradisional perubahan atau setidaknya tingkat lapangan bermain.
Catatan:
- Ini adalah kode-golf , jawaban terpendek dalam byte menang!
- Input dapat dari STDIN, parameter fungsi, parameter baris perintah, dll. Tetapi bukan variabel .
- Output dapat berupa STDOUT, nilai pengembalian fungsi, atau bahkan kesalahan / pengecualian. Dapat menyertakan baris tambahan.
- Bahasa tradisional didorong untuk bersaing karena tantangan ini melarang banyak bahasa bermain golf dengan mengecualikan karakter Unicode tinggi. C bahkan mungkin memiliki peluang untuk menang!
- Ada pertanyaan? Komentar dibawah!
Jika terlalu sulit ...
Anda dapat mengabaikan rangkaian karakter dalam jawaban Anda, tetapi kemudian menjadi tidak kompetitif.
CATATAN: Sekarang Anda dapat menggunakan hingga 4 set karakter. Sama-sama.
Anda dapat menggunakan potongan ini untuk memeriksa apakah kode Anda valid:
sumber
JS (JSFuck), 37959 byte
Inilah intinya , karena PPCG membenci kode panjang.
Hanya menggunakan karakter khusus. : P
Inilah kode aslinya:
sumber
Plz send teh codez!
, maksudku.z
ini salah. facepalmC, 102 byte
Tidak menggunakan angka apa pun atau apa pun dari
QWERTYUIOASDFGHJKLXVBN
. Cobalah online!sumber
Retina , 56 byte
Cobalah online!
Menggunakan karakter khusus, dua set huruf yang tidak sensitif dan huruf kecil lainnya.
Pertama, kami menghapus seluruh input jika tidak mengandung
Plz send teh codez
. Jika masih ada input yang kita ganti-1 flag comment
, hindari digit dengan$#+
.$+
mengacu pada grup tangkapan terakhir yang$0
(seluruh pertandingan) sind tidak ada grup tangkapan.$#+
kemudian memberikan jumlah tangkapan, yang selalu1
.Akhirnya, jika string masih kosong (yaitu kami membersihkannya di tahap pertama), kami menggantinya dengan
+1
(lagi menggunakan$#+
untuk1
).sumber
C #, 77 byte
Tidak bisa menggunakan angka adalah rasa sakit.
sumber
Python 2,
959487 BytesMenggunakan karakter khusus dan semua huruf kecil lebih rendah (ditambah tiga set karakter dan kecuali untuk "p", yang case-sensitive) untuk total empat set karakter yang digunakan .
Cobalah online! Terima kasih kepada @math_junkie karena telah menghemat 8 byte! Terima kasih kepada @officialaimm karena telah menghemat dua byte!
Membiarkan
a
menjadiord()
fungsi bawaan.Ini benar-benar
b=1
.Jika pernyataan dalam pasangan kedua kurung benar, cetak string kedua dalam pasangan pertama. Kalau tidak, cetak yang pertama.
sumber
str
, dan Anda dengan menghapus spasi setelahprint
: repllambda n,b=ord('b')-ord('a'):["+"+`b`,`-b`+" flag comment"][n=="Plz send teh codez!"]
Python 2/3,
817668 bytePenggunaan:
pzcm
(case-insensitive)hten
(case-insensitive)qwryuioasdfgjklxvb
Tidak menggunakan:
QWRYUIOASDFGJKLXVB
-8 byte berkat math_junkie
sumber
+
sebagai gantiint
: TIOPython 3, 115 byte
Itu tidak menggunakan angka atau huruf besar.
Cobalah online
sumber
if "p"
,codez!" in
, dllstr(len('a'))
ke variabel dapat menghemat lebih banyak. Menyambungkan nomor ke string secara langsung daripada meneleponstr
juga mungkin menguntungkan.Gangguan Umum, 81 byte
Khusus + huruf kecil + 2 case campuran = 4 rangkaian karakter
Tidak disatukan
Penjelasan
(read-line)
Menerima jalur input dari
*standard-input*
(STDIN, secara default).(search "Plz send teh codez!" ...)
Memindai argumen kedua (garis baca) untuk indeks tempat argumen pertama dimulai. Mengembalikan indeks ini atau
nil
(false) jika tidak dapat ditemukan.(*)
Perkalian dalam lisp didefinisikan untuk mengambil sejumlah argumen arbitrer, termasuk tidak ada - dalam hal itu selalu mengembalikan 1.
(format t "~:[+~s~;-~s flag comment~]" ...)
#'format
mirip denganfprintf
atausprintf
dalam C. Ini argumen pertamat
,, menunjuk output sebagai*standard-output*
(STDOUT, secara default). Argumen berikutnya adalah format string. "~" digunakan seperti "%" dalamprintf
- karakter yang mengikutinya menunjuk operasi pemformatan."~:[<a>~;<b>~]"
adalah operasi pemformatan bersyarat. Dibutuhkan argumen dan berlanjut dengan<a>
jika argumen itunil
(salah). Nilai lain apa pun, sepertit
(benar) atau angka (misalnya), terus dilanjutkan<b>
. Argumen ketiga untuk memformat (yang pertama, setelaht
dan string format) adalah pencarian, jadi<a>
akan dipilih jika pencarian gagal (dan<b>
sebaliknya).Dalam kasus ini, cabang
<a>
(nil
/ false) mencetak "+ ~ s". "~ s" mengonversi argumen format ke string dan mencetak karakternya. Argumen keempat untuk memformat (yang kedua, setelaht
dan string format) adalah(*)
atau 1, jadi kita mendapatkan "+1" dicetak.The
<b>
cabang mirip: "- ~ bendera komentar". Ini juga menggunakan argumen keempat (kedua) untuk mengisi "~ s", sehingga ia mencetak "-1 flag comment".sumber
sh + sed, 72 byte
Menggunakan set karakter: 1, 3, 4, 5.
Pada awalnya, saya ingin pergi dengan sed murni, tetapi saya tidak tahu bagaimana menghindari penggunaan angka. Jadi saya menggunakan sh hanya untuk itu.
let ""
memiliki status keluar1
, karena tidak dapat dievaluasi sebagai ekspresi aritmatika.z
hanya label dan dapat diganti dengan karakter lain.sumber
Mathematica, 265 byte
Ini sulit.
Versi yang dapat dibaca:
Menggunakan karakter khusus
hten
,,qwryuioasdfgjklxvb
danQWRYUIOASDFGJKLXVB
. Mathematica tanpa karakter khusus pada dasarnya tidak mungkin, dan hampir semua fungsi terkait string termasukString
dalam namanya, sehingga benar-benar membatasi pilihan di sini ...Untuk mendapatkan set karakter lainnya, kita perlu beberapa trik. Pertama, untuk mendapatkan
1
kita mengambil negatif dari kuadrat jumlah imajinerI
:i = -I I
. Nanti kita juga mendefinisikan3
dengane = i+i+i
.Surat
P
itu cukup mudah: Mathematica memperlakukan secaraa^b
internal sebagaiPower[a,b]
, jadi yang perlu kita lakukan adalah mengambil kepala ini (Power
), mengubahnya menjadi string, dan mengambili
huruf pertama (alias th). (Kami akan mengubah segala sesuatunya menjadi string dan sering mengambil huruf ke- n , jadi kami mendefinisikannyat[s_,n_]:=ToString@s~StringTake~{n}
.) Suratnyam
serupa: ambil kepalaa b
, yaituTimes
, dan dapatkane
huruf ketiga (alias ke).Surat
c
itu sedikit lebih sulit: kami menggunakan identitas trigonometri1/Sin[x] == Csc[x]
(atau lebih tepatnyai/Sin[x]
karena kami tidak dapat menggunakan1
), dan mengambil huruf ketiga dariCsc[x]
.Bagian yang sangat sulit adalah
z
. Untuk membuatz
, kita menggunakanHurwitzZeta
fungsi (ya, sungguh). Kami mendapatkannya dengan memecahkan hubungan perulanganRSolve[f[a + i] == f@a - i/Sqrt@a, f@a, a]
, yang menghasilkan stringdimana karakter ke-68 adalah
z
. Kami mendapatkan nomor 68 sebagai4^3 + 4
.Ini mungkin bisa di-golf lebih lanjut: Hurz Zeta cukup banyak disalin dari dokumentasi Mathematica, dan mungkin ada cara yang lebih pendek untuk mendapatkan 68 - atau kita bisa menggunakan metode lain sepenuhnya untuk
z
. Ada saran?sumber
Python 3.5 (
13710298878594 Bytes)Menggunakan huruf kecil (3 charset) + karakter khusus (1 charset) = 4 charset
Saya hampir berencana untuk menghindari spasi putih juga tetapi lekukan dalam python memaksa saya untuk menjaga satu baris baru jadi saya meninggalkan spasi putih seperti sebelumnya.
Cobalah online!
sumber
.upper()
+1
input yang tidak mengandungPlz send teh codez!
Groovy, 78 byte
Tidak menggunakan angka atau set huruf besar.
Hanya penggunaan langsung operator ternary.
"a".length()
adalah solusi untuk mendapatkan 1
sumber
Swift (tidak kompetitif) - 64 byte
Sayangnya menggunakan 5 rangkaian karakter, tidak dapat membuatnya tanpa mereka ... Saran dipersilahkan!
sumber