Beberapa waktu setelah kejadian ini ...
Ada beberapa dari kita yang menentang perintah jQuery yang mencemari ini. Itu adalah kehadiran yang tidak suci, yang harus dimusnahkan . Karena itu saya memanggil Anda, yang setia kepada Kerajaan Reformasi Baru, untuk membuat program yang akan menghilangkan perlawanan semacam itu. Semua kode harus divalidasi dan dicari untuk SETIAP dan SETIAP jejak jQuery. Dan, tentu saja, kiriman Anda harus pendek (ada pemotongan anggaran lagi, dan, sayangnya, itu di departemen penyimpanan). Dan itu tidak dapat memiliki karakter yang mencemari.
Untuk mendapatkan Anda sampai dengan kecepatan, sebuah karakter mencemarkan adalah salah satu karakter berikut: jJqQuUeErRyY$x0
. Seperti yang telah dikatakan, penggunaan karakter ini sangat dilarang, bahkan dalam program Anda sendiri. Jadi jangan menggunakannya. JUGA kita baik-baik saja dengan tanda dolar dalam angka. Jadi, segala bentuknya n+(.nn)*$
OK (Anda masih tidak boleh menggunakan 0
.)
Program / kode Anda / dll. harus memvalidasi program input. Jika berisi karakter yang mencemari , Anda harus menampilkan This programmer is guilty of Heresy. He must be burnt.
; jika tidak ada karakter yang ditemukan, Anda harus menampilkan Program validated. Clearance level 2 given.
.
Bonus dan Denda
- Saya pribadi mengagumi karakternya
~
. Untuk setiap dua yang Anda gunakan, saya akan memberi Anda -1 byte. (Yaitu, setiap lainnya~
gratis.) - Anda dapat memilih satu karakter dari yang dikecualikan; Anda kemudian dapat menggunakan karakter ini dalam semua kasusnya, NAMUN: ada penalti awal + 50% byte, dan kemudian penalti +5 byte untuk setiap instance karakter itu.
- -90% jika Anda tidak menggunakan karakter yang bersebelahan dengan
jquery
(hanya untuk menjadi super aman) dalam kode sumber Anda. Ini adalah (sebagai tambahan):iIkKpPsSzZXdDfF
- -20% jika, ketika diberi string yang tidak valid, bersama dengan menghasilkan teks yang disebutkan di atas, Anda mengganti semua karakter yang tidak valid dengan
-
untuk menjalankan 1,*
dengan menjalankan kurang dari 10, dan[]
dengan menjalankan lagi. - -50 byte jika Anda tidak menemukan
JavaScript/i
atauSimplex
memiliki karakter yang mencemari.
Implementasi Referensi
function validate() {
var str = document.getElementById("input").value;
var str2 = str.replace(/[jquery0]/gi,"").replace(/x/g,"").replace(/(\d+\.*\d*\d*\$)|\$/g,"$1"); // thanks Doorknob!
var val;
if (str2 == str) {
val = "Program validated. Clearance level 2 given.";
} else {
val = "This programmer is guilty of Heresy. He must be burnt.";
}
document.getElementById("output").value = val;
}
textarea{width: 600px;}
<textarea id="input" onkeyup="validate()"></textarea>
<br><br>
<textarea id="output" disabled></textarea>
sumber
Ee
pembatasan akan sulit ...Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
Jawaban:
CJam,
16013913,4 byteDi atas adalah hexdump yang dapat dibalik dengan
xxd -r -c 18
. Cobalah online.Kode itu sendiri terdiri dari 142 byte . Ini berisi total enam belas ~ karakter ( -8 byte ), tetapi tidak ada karakter yang berdekatan dengan jQuery ( -90% ).
Bagaimana itu bekerja
Pertandingan
n+(.nn)*$
benar-benar bermuara pada angka yang diikuti oleh tanda dolar .Pertama-tama,
menambahkan -94 ke semua titik kode dari string itu dan mengevaluasi hasilnya.
Kode yang dieksekusi adalah:
sumber
Minkolang 0,9 , 346-3 = 343 byte
Program terpanjang.
Coba di sini.
Penjelasan
Baris pertama melakukan tiga hal: 1) membangun tumpukan dengan karakter terlarang, 2) meletakkan yang sangat dibutuhkan
x
di tempat yang tepat (ruang di akhir), dan 3) loop melalui input, melompat ke baris yang sesuai .Baris kedua dan keempat melakukan hal yang sama: ganti setiap celah di baris berikutnya dengan karakter yang sesuai. Mereka melompat ke baris berikutnya di akhir.
Baris ketiga dan kelima cukup mendorong string yang diperlukan pada tumpukan dan mencetaknya.
sumber
PHP, (204 * 1.5 + 5) * .1 = 31.1
Tumpukan ini dibuat menggunakan gnuwin32
hexdump
. Terbalik denganhex2bin
.(Saya bingung tentang urutan penerapan bonus / penalti, jadi saya menganggap pesanan sudah tertulis.)
Menggunakan karakter "e" dalam eval. Berkat sihir inversi string PHP, ini berhasil menghindari semua karakter jquery dan near-jquery lainnya.
String terbalik berisi kode ini (diformat untuk kejelasan)
Karena kode ini tidak memiliki pernyataan
eval
pengembalian , mengembalikan nol sehingga<?=eval
tidak melakukan apa-apa. (Hanya untuk menghindari<?php
)sumber
[jquery$x0]
dan[1-9]+(\.[1-9]{2})?\$
. Ngomong-ngomong, modalX
tidak boleh dianggap mencemarkan karakter, jadi regex kedua harus diubah menjadi'/[1-9]+(\.[1-9]{2})?\$|X/'
.> <> , 184 byte
Ini mungkin sedikit lebih pendek dengan unsintables, tetapi ini adalah versi yang dapat dicetak hanya untuk bersenang-senang. Tidak akan bekerja dengan penerjemah online karena ia menempatkan di luar kotak kode.
Program ini mengkodekan kedua string sebagai
yang masing-masing titik kode dikurangi dari 155. Demikian pula,
mengkodekan karakter terlarang, dengan poin kode dikurangi dari 160.
Baris terakhir hanya mengatur koordinat
(forbidden char, 10)
ke 1, membentuk tabel pencarian. Baris keempat kemudian memeriksa setiap karakter input menggunakan tabel pencarian, mengeluarkan pesan bidat jika saya melanjutkan. Di EOF, kami bergerak ke atas untuk menampilkan pesan clearance.sumber
"Javascript" 840 * 2 + 14 * 5 = 1750;)
Aku sangat dekat, hanya perlu menemukan cara untuk menyingkirkan r
Stack tidak membiarkan saya menempelkan kode di sini karena ada beberapa karakter ASCII yang tidak dicetak dalam string, jadi inilah hexdump dari xxd
sumber