Einige Zeit nach diesem Vorfall ...
Es gibt einige von uns , die gegen diese beschmutzende Ordnung von jQuery sind. Es ist eine unheilige Gegenwart, von der ausgerottet werden muss . Ich fordere Sie daher auf, ein Programm zu entwickeln, mit dem dieser Widerstand beseitigt werden kann. Der gesamte Code muss validiert und nach JEDEM und JEDEM Trace von jQuery durchsucht werden. Und natürlich muss Ihre Einreichung kurz sein (es gab eine weitere Budgetkürzung, und leider war es in der Lagerabteilung). Und es darf keine unehrlichen Zeichen enthalten.
Um Sie bis zu Geschwindigkeit, ein Beschmutzung Charakter ist eine der folgenden Zeichen: jJqQuUeErRyY$x0
. Wie bereits erwähnt, ist die Verwendung dieser Zeichen auch in Ihrem eigenen Programm strengstens untersagt. Also benutze sie nicht. AUCH Dollarzeichen in Zahlen sind in Ordnung. Also, alles in der Form n+(.nn)*$
ist in Ordnung (Sie sollten immer noch nicht verwenden 0
.)
Ihr Programm / Code / etc. muss ein Eingabeprogramm validieren. Wenn es fehlerhafte Zeichen enthält , müssen Sie diese ausgeben This programmer is guilty of Heresy. He must be burnt.
. Wenn keine solchen Zeichen gefunden werden, müssen Sie ausgeben Program validated. Clearance level 2 given.
.
Boni und Strafen
- Ich persönlich bewundere den Charakter den Charakter
~
. Für alle zwei, die Sie verwenden, gebe ich Ihnen -1 Byte. (dh jeder andere~
ist frei.) - Sie können genau ein Zeichen aus dem ausgeschlossenen auswählen. Sie können dieses Zeichen dann in allen Fällen verwenden. Es gibt jedoch eine Anfangsstrafe von + 50% Byte und dann eine Strafe von + 5 Byte für jede Instanz dieses Zeichens.
- -90%, wenn Sie
jquery
in Ihrem Quellcode keine der Zeichen verwenden, die neben (nur um besonders sicher zu sein) stehen. Dies sind (zusätzlich):iIkKpPsSzZXdDfF
- -20%, wenn Sie bei Angabe einer ungültigen Zeichenfolge bei der Ausgabe des oben genannten Texts alle ungültigen Zeichen durch
-
für einen Lauf von 1,*
mit einem Lauf von weniger als 10 und[]
mit einem längeren Lauf ersetzen . - -50 Bytes, wenn Sie keine fehlerhaften Zeichen finden
JavaScript/i
oderSimplex
haben.
Referenzimplementierung
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>
quelle
Ee
Einschränkung wird hart sein ...Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
Antworten:
CJam,
16013913,4 BytesDas obige ist ein Hexdump, mit dem umgekehrt werden kann
xxd -r -c 18
. Probieren Sie es online aus.Der Code selbst besteht aus 142 Bytes . Es enthält insgesamt 16 ~ Zeichen ( -8 Byte ), jedoch keine an jQuery angrenzenden Zeichen ( -90% ).
Wie es funktioniert
Das Match
n+(.nn)*$
läuft wirklich auf eine Ziffer ab, gefolgt von einem Dollarzeichen .Als allererstes,
Fügt allen Codepunkten dieser Zeichenfolge -94 hinzu und wertet das Ergebnis aus.
Der ausgeführte Code ist:
quelle
Minkolang 0,9 , 346-3 = 343 Bytes
Längste Sendung bisher.
Probieren Sie es hier aus.
Erläuterung
Die erste Zeile hat drei Aufgaben: 1) Bauen Sie den Stapel mit den verbotenen Zeichen auf, 2) platzieren Sie ein dringend benötigtes Zeichen
x
an der richtigen Stelle (das Leerzeichen am Ende) und 3) durchlaufen Sie die Eingabe und springen Sie zur entsprechenden Zeile .Die zweite und vierte Zeile machen dasselbe: Ersetzen Sie jede Lücke in der nachfolgenden Zeile durch das entsprechende Zeichen. Sie springen am Ende zur nächsten Zeile.
Die dritte und fünfte Zeile schieben einfach den gewünschten String auf den Stapel und drucken ihn aus.
quelle
PHP, (204 · 1,5 + 5) · 1 = 31,1
Dieser Dump wurde mit gnuwin32 erstellt
hexdump
. Umkehren mithex2bin
.(Ich bin verwirrt über die Reihenfolge, in der der Bonus / die Strafe angewendet werden soll. Daher habe ich die Reihenfolge wie geschrieben angenommen.)
Verwendet das Zeichen "e" in eval. Dank PHP String Inversion Magic können alle anderen jquery- und near-jquery-Zeichen vermieden werden.
Die invertierte Zeichenfolge enthält diesen Code (aus Gründen der Übersichtlichkeit formatiert).
Da dieser Code keine return-Anweisung hat,
eval
gibt return null zurück und<?=eval
unternimmt nichts. (Es ist nur zu vermeiden<?php
)quelle
[jquery$x0]
und vereinfachen[1-9]+(\.[1-9]{2})?\$
. Übrigens sollte das KapitalX
nicht als beschmutzender Charakter angesehen werden, daher sollte der zweite reguläre Ausdruck in geändert werden'/[1-9]+(\.[1-9]{2})?\$|X/'
.> <> 184 Bytes
Dies kann bei nicht druckbaren Dateien etwas kürzer sein, aber hier ist eine druckbare Version nur zum Spaß. Funktioniert nicht mit dem Online-Interpreter, da er sich außerhalb der Codebox befindet.
Dieses Programm codiert beide Zeichenfolgen als
Dies ist jeder Codepunkt, der von 155 subtrahiert wird.
codiert die verbotenen Zeichen mit von 160 abgezogenen Codepunkten.
Die letzte Zeile setzt lediglich die Koordinaten
(forbidden char, 10)
auf 1 und bildet eine Nachschlagetabelle. Die vierte Zeile prüft dann jedes Eingabezeichen unter Verwendung der Nachschlagetabelle und gibt die Häresienachricht aus, wenn 1 anderes fortgesetzt wird. Bei EOF rücken wir nach oben, um die Freigabemeldung auszugeben.quelle
"Javascript" 840 * 2 + 14 * 5 = 1750;)
Ich bin soooo nah dran, ich muss nur einen Weg finden, die Rs loszuwerden
Mit Stack kann ich den Code hier nicht einfügen, da die Zeichenfolgen mehrere nicht druckbare ASCII-Zeichen enthalten. Hier ist also ein Hexdump von xxd
quelle