tolong kirim kode!

8

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 , 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:

programmer5000
sumber

Jawaban:

3

CJam , 50 49 48 byte

q"Plz send teh codez!"#)"- flag comment""+"?(T)@

Tidak menggunakan digit atau set huruf kapital.

Cobalah online!

Penjelasan

q                       e# Push the input
"Plz send teh codez!"#  e# Find index of "Plz send teh codez!" in the input (-1 if not found)
)                       e# Increment the index
                        e# Check the truthiness of the index:
 "- flag comment"       e#   If truthy (i.e. it appeared in the input), push this string
 "+"                    e#   If falsy (it wasn't in the input), push this string
?                       e# 
(                       e# Uncons from left, removes the first character of the string and 
                        e#  pushes it on the stack
T)                      e# Push 0, and increment it to 1
@                       e# Bring third-from-top stack element to the top
                        e# Implicit output of stack contents
Kucing Bisnis
sumber
11

JavaScript (ES6), 60 byte

x=>/Plz send teh codez!/.test(x)?~x+' flag comment':'+'+-~[]

Semuanya mudah, kecuali menghindari penggunaan di 1mana saja. Saya menggunakan ~xuntuk mendapatkan -1(karena jika xberisi Plz send teh codez!, itu bukan angka yang valid dan karena itu ~xakan memberi -1), dan -~[]untuk mendapatkan 1(karena jika xmisalnya '7', -~xakan 8, jadi kita tidak bisa mengandalkan x).

Cuplikan tes

Produksi ETH
sumber
Pelanggaran logika JSFuck!
Matius Roh
9

JS (JSFuck), 37959 byte

Inilah intinya , karena PPCG membenci kode panjang.

Hanya menggunakan karakter khusus. : P

Inilah kode aslinya:

alert(prompt().includes("Plz send teh codez!")?"-1 flag comment":"+1")
Matthew Roh
sumber
Anda tidak memanfaatkan
huruf besar
@dryryleo Seharusnya begitu.
Matius Roh
P dalam Plz send teh codez!, maksudku.
darrylyeo
Oh, tunggu sekarang zini salah. facepalm
Matthew Roh
4

C, 102 byte

i;f(char*s){i=strstr(s,"Plz send teh codez!");printf("%+d%s",i?'a'-'b':'b'-'a',i?" flag comment":"");}

Tidak menggunakan angka apa pun atau apa pun dari QWERTYUIOASDFGHJKLXVBN. Cobalah online!

betseg
sumber
4

Retina , 56 byte

(?!.*Plz send teh codez).+

.+
-$#+ flag comment
^$
+$#+

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 selalu 1.

Akhirnya, jika string masih kosong (yaitu kami membersihkannya di tahap pertama), kami menggantinya dengan +1(lagi menggunakan $#+untuk 1).

Martin Ender
sumber
2

C #, 77 byte

x=>x.Contains("Plz send teh codes!")?$"{'x'-'y'} flag comment":$"+{'x'/'x'}";

Tidak bisa menggunakan angka adalah rasa sakit.

apk
sumber
2

Python 2, 95 94 87 Bytes

Menggunakan 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 .

b=ord('b')-ord('a')
print["+"+`b`,`-b`+" flag comment"][input()=="Plz send teh codez!"]

Cobalah online! Terima kasih kepada @math_junkie karena telah menghemat 8 byte! Terima kasih kepada @officialaimm karena telah menghemat dua byte!


a=ord     

Membiarkan amenjadi ord()fungsi bawaan.

b=str(a('b')-a('a'))

Ini benar-benar b=1.

print["+"+b, "-"+b+" flag comment"][input()=="Plz send teh codez!"]

Jika pernyataan dalam pasangan kedua kurung benar, cetak string kedua dalam pasangan pertama. Kalau tidak, cetak yang pertama.

Anthony Pham
sumber
Anda dapat menyimpan 5 byte dengan menghindari str, dan Anda dengan menghapus spasi setelah print: repl
math junkie
@math_junkie Itu menciptakan kesalahan menggabungkan bilangan bulat dengan string
Anthony Pham
Lihat tautan di komentar saya di atas
pecandu matematika
Anda dapat menyimpan 2 byte dengan menghapus = ord dan benar-benar menggunakan ord ... sepertinya hemat, tetapi tidak ... Saya memiliki hal yang sama: D
officialaimm
Anda dapat menyimpan dua lagi dengan lambda:lambda n,b=ord('b')-ord('a'):["+"+`b`,`-b`+" flag comment"][n=="Plz send teh codez!"]
pecandu matematika
2

Python 2/3, 81 76 68 byte

lambda x:["+%s","-%s flag comment"]["Plz send teh codez!"in x]%+True

Penggunaan:

  • Semua karakter khusus (apa pun yang bukan spasi, baris baru (0x0a), alfabet case-sensitive, atau digit)
  • Salah satu dari pzcm(case-insensitive)
  • Salah satu dari hten(case-insensitive)
  • Salah satu dari qwryuioasdfgjklxvb

Tidak menggunakan:

  • Salah satu dari QWRYUIOASDFGJKLXVB
  • Digit apa saja (0-9)

-8 byte berkat math_junkie

L3viathan
sumber
1
Simpan 4 byte dengan pencarian array: TIO
math junkie
1
Simpan 4 lebih banyak dengan menggunakan +sebagai ganti int: TIO
pecandu matematika
@math_junkie Ide bagus!
L3viathan
2

Python 3, 115 byte

if"p".upper()+"lz send teh codez!"in input():print("-"+str(len('a'))+" flag comment")
else:print("+"+str(len('a')))

Itu tidak menggunakan angka atau huruf besar.

Cobalah online

just_floating
sumber
Anda dapat menghapus beberapa ruang, seperti antara if "p", codez!" in, dll
mbomb007
Menetapkan str(len('a'))ke variabel dapat menghemat lebih banyak. Menyambungkan nomor ke string secara langsung daripada menelepon strjuga mungkin menguntungkan.
Julian Wolf
1

Gangguan Umum, 81 byte

Khusus + huruf kecil + 2 case campuran = 4 rangkaian karakter

(format t"~:[+~s~;-~s flag comment~]"(search"Plz send teh codez!"(read-line))(*))

Tidak disatukan

(format t "~:[+~s~;-~s flag comment~]"
        (search "Plz send teh codez!" (read-line))
        (*))

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~]" ...)

#'formatmirip dengan fprintfatau sprintfdalam C. Ini argumen pertama t,, menunjuk output sebagai *standard-output*(STDOUT, secara default). Argumen berikutnya adalah format string. "~" digunakan seperti "%" dalam printf- karakter yang mengikutinya menunjuk operasi pemformatan.

"~:[<a>~;<b>~]"adalah operasi pemformatan bersyarat. Dibutuhkan argumen dan berlanjut dengan <a>jika argumen itu nil(salah). Nilai lain apa pun, seperti t(benar) atau angka (misalnya), terus dilanjutkan <b>. Argumen ketiga untuk memformat (yang pertama, setelah tdan 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, setelah tdan 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".

djeis
sumber
1

sh + sed, 72 byte

Menggunakan set karakter: 1, 3, 4, 5.

let ""
sed "s/.*Plz send teh codez!.*/-$? flag comment/
tz
s/.*/+$?/
:z"

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 keluar 1, karena tidak dapat dievaluasi sebagai ekspresi aritmatika.

z hanya label dan dapat diganti dengan karakter lain.

Maxim Mikhaylov
sumber
1

Mathematica, 265 byte

Ini sulit.

t[s_,n_]:=ToString@s~StringTake~{n};If[StringFreeQ[#,t[Head[a^b],i=-I I]<>"l"<>(s=t[RSolve[f[a+i]==f@a-i/Sqrt@a,f@a,a],(i+i+i+i)^(e=i+i+i)+i+e])<>" send teh "<>(k=t[i/Sin@x,e])<>"ode"<>s<>"!"],"+"<>t[i,i],"-"<>t[i,i]<>" flag "<>k<>"o"<>(n=Head[a b]~t~e)<>n<>"ent"]&

Versi yang dapat dibaca:

t[s_, n_] := ToString@s~StringTake~{n}; 
If[StringFreeQ[#, 
   t[Head[a^b], i = -I I] <> 
    "l" <> (s = 
      t[RSolve[f[a + i] == f@a - i/Sqrt@a, f@a, 
        a], (i + i + i + i)^(e = i + i + i) + i + e]) <> 
    " send teh " <> (k = t[i/Sin@x, e]) <> "ode" <> s <> "!"], 
  "+" <> t[i, i], 
  "-" <> t[i, i] <> " flag " <> k <> "o" <> (n = Head[a b]~t~e) <> n <>
    "ent"] &

Menggunakan karakter khusus hten,, qwryuioasdfgjklxvbdan QWRYUIOASDFGJKLXVB. Mathematica tanpa karakter khusus pada dasarnya tidak mungkin, dan hampir semua fungsi terkait string termasuk Stringdalam namanya, sehingga benar-benar membatasi pilihan di sini ...

Untuk mendapatkan set karakter lainnya, kita perlu beberapa trik. Pertama, untuk mendapatkan 1kita mengambil negatif dari kuadrat jumlah imajiner I: i = -I I. Nanti kita juga mendefinisikan 3dengan e = i+i+i.

Surat Pitu cukup mudah: Mathematica memperlakukan secara a^binternal sebagai Power[a,b], jadi yang perlu kita lakukan adalah mengambil kepala ini ( Power), mengubahnya menjadi string, dan mengambil ihuruf pertama (alias th). (Kami akan mengubah segala sesuatunya menjadi string dan sering mengambil huruf ke- n , jadi kami mendefinisikannya t[s_,n_]:=ToString@s~StringTake~{n}.) Suratnya mserupa: ambil kepala a b, yaitu Times, dan dapatkan ehuruf ketiga (alias ke).

Surat citu sedikit lebih sulit: kami menggunakan identitas trigonometri 1/Sin[x] == Csc[x](atau lebih tepatnya i/Sin[x]karena kami tidak dapat menggunakan 1), dan mengambil huruf ketiga dari Csc[x].

Bagian yang sangat sulit adalah z. Untuk membuat z, kita menggunakan HurwitzZetafungsi (ya, sungguh). Kami mendapatkannya dengan memecahkan hubungan perulangan RSolve[f[a + i] == f@a - i/Sqrt@a, f@a, a], yang menghasilkan string

"                             1            1
 {{f[a] -> C[1] + HurwitzZeta[-, a] - Zeta[-]}}
                              2            2"

dimana karakter ke-68 adalah z. Kami mendapatkan nomor 68 sebagai 4^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?

Bukan pohon
sumber
1

Python 3.5 ( 137 102 98 87 85 94 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.

i=str(ord('b')-ord('a'))
print(['+'+i,'-'+i+' flag comment']['Plz send teh codez!'in input()])

Cobalah online!

  • disimpan 35 byte !!!!: rupanya saya lupa keberadaan fungsi atas () sebelumnya (konyol saya !!)
  • disimpan 4 byte: dikurangi i = input () menjadi input saja ()
  • disimpan 11 byte !!!: Terima kasih kepada Anthony-Pham (menggunakan 'P' karena ini valid di charset)
  • disimpan 2 byte: (dihapus a = ord; mengetahui bahwa memperpendek fungsi tidak selalu merupakan ide yang baik!: D)
  • menambahkan 9 byte: Terima kasih kepada pecandu matematika karena menunjukkan bahwa saya tidak menampilkan +1 untuk string tanpa 'Tolong kirim kode kode!' sebelum.
officialaimm
sumber
1
Nah karena Anda sudah menggunakan p (dan itu didefinisikan sebagai case-insensitive), Anda tidak perlu.upper()
Anthony Pham
1
Anda perlu menampilkan +1input yang tidak mengandungPlz send teh codez!
math junkie
Terima kasih telah menunjukkan itu, saya tidak menyadarinya sampai sekarang ...: D
officialaimm
0

Groovy, 78 byte

{a="a".length();it.contains("Plz send teh codez!")?-a+" flag comment":"+"+a}

Tidak menggunakan angka atau set huruf besar.

Hanya penggunaan langsung operator ternary. "a".length()adalah solusi untuk mendapatkan 1

metode statis
sumber
0

Swift (tidak kompetitif) - 64 byte

print(x.contains("Plz send teh codez!") ?"-1 flag comment":"+1")

Sayangnya menggunakan 5 rangkaian karakter, tidak dapat membuatnya tanpa mereka ... Saran dipersilahkan!

Tuan Xcoder
sumber