Jakiś czas po tym incydencie …
Istnieje kilka z nas , którzy są przeciwko tej defiling kolejności jQuery. Jest to nieświęta obecność, której należy wytępić . Dlatego wzywam was, lojalnych wobec Nowego Królestwa Reformacji, do stworzenia programu, który wyeliminuje taki opór. Cały kod musi być sprawdzony i wyszukany KAŻDY i KAŻDY ślad jQuery. Oczywiście twoje zgłoszenie musi być krótkie (nastąpiło kolejne cięcie budżetu i niestety miało to miejsce w dziale magazynowania). I nie może mieć nieczystych znaków.
Aby dostać się do prędkości, o defiling postać jest którykolwiek z następujących znaków: jJqQuUeErRyY$x0
. Jak już powiedziano, używanie tych znaków jest surowo zabronione, nawet w twoim własnym programie. Więc nie używaj ich. TAKŻE nie mamy nic przeciwko znakom dolara w liczbach. Wszystko w formularzu n+(.nn)*$
jest w porządku (nadal nie powinieneś używać 0
).
Twój program / kod / itp. musi sprawdzić poprawność programu wejściowego. Jeśli zawiera on znaki zanieczyszczające , musisz wyprowadzić This programmer is guilty of Heresy. He must be burnt.
; jeśli takie znaki nie zostaną znalezione, musisz wygenerować dane wyjściowe Program validated. Clearance level 2 given.
.
Bonusy i kary
- Osobiście podziwiam postać postać
~
. Za każde dwa, którego użyjesz, dam ci -1 bajt. (tzn. każda inna~
jest darmowa). - Możesz wybrać dokładnie jedną postać z wykluczonych; możesz następnie użyć tej postaci we wszystkich jej przypadkach, JEDNAK: istnieje początkowa kara + 50% bajtów, a następnie kara +5 bajtów za każdą instancję tej postaci.
- -90%, jeśli nie użyjesz żadnego z znaków sąsiadujących z
jquery
(tylko dla bezpieczeństwa) w kodzie źródłowym. Są to (dodatkowo):iIkKpPsSzZXdDfF
- -20%, jeśli po otrzymaniu niepoprawnego ciągu, wraz z wypisaniem wyżej wymienionego tekstu, zamieniasz wszystkie nieprawidłowe znaki
-
na przebieg 1,*
bieg mniejszy niż 10 i[]
każdy dłuższy bieg. - -50 bajtów, jeśli nie możesz znaleźć znaków
JavaScript/i
lubSimplex
masz je ze sobą.
Wdrożenie referencyjne
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>
źródło
Ee
Ograniczenie będzie trudne ...Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
Odpowiedzi:
CJam,
16013913,4 bajtówPowyżej jest zrzut heksowy, który można odwrócić
xxd -r -c 18
. Wypróbuj online.Sam kod składa się z 142 bajtów . Zawiera w sumie szesnaście znaków ~ ( -8 bajtów ), ale nie ma znaków sąsiadujących z jQuery ( -90% ).
Jak to działa
Mecz
n+(.nn)*$
naprawdę sprowadza się do cyfry, po której następuje znak dolara .Po pierwsze,
dodaje -94 do wszystkich punktów kodowych tego ciągu i ocenia wynik.
Wykonany kod to:
źródło
Minkolang 0,9 , 346-3 = 343 bajty
Najdłuższy jak dotąd program.
Wypróbuj tutaj.
Wyjaśnienie
W pierwszym wierszu są trzy rzeczy: 1) zbuduj stos z zabronionymi postaciami, 2) umieść bardzo potrzebne miejsce
x
w odpowiednim miejscu (miejsce na końcu) i 3) zapętl się przez wejście, przeskakując do odpowiedniej linii .Druga i czwarta linia robią to samo: zamień każdą przerwę w kolejnej linii odpowiednim znakiem. Skaczą do następnej linii na końcu.
Trzecia i piąta linia po prostu wepchną wymagany łańcuch na stos i wydrukują go.
źródło
PHP, (204 * 1,5 + 5) * .1 = 31,1
Ten zrzut został wykonany przy użyciu gnuwin32
hexdump
. Odwróć zhex2bin
.(Jestem zdezorientowany co do kolejności stosowania premii / kary, więc przyjąłem zamówienie zgodnie z opisem).
Używa znaku „e” w eval. Dzięki magii inwersji łańcuchów PHP udaje się uniknąć wszystkich innych znaków jquery i niemal jquery.
Odwrócony ciąg zawiera ten kod (sformatowany dla zachowania przejrzystości)
Ponieważ ten kod nie ma instrukcji return,
eval
zwraca null, więc<?=eval
nic nie robi. (Aby tego uniknąć<?php
)źródło
[jquery$x0]
i[1-9]+(\.[1-9]{2})?\$
. Nawiasem mówiąc, kapitałuX
nie należy uważać za postać skalującą, dlatego drugą regex należy zmienić na'/[1-9]+(\.[1-9]{2})?\$|X/'
.> <> , 184 bajty
Może być nieco krótszy w przypadku niedrukowalnych, ale tutaj jest wersja do wydruku dla zabawy. Nie działa z tłumaczem online, ponieważ umieszcza go poza paczką kodową.
Ten program koduje oba ciągi jako
czyli każdy punkt kodowy odjęty od 155. Podobnie,
koduje zabronione znaki, odejmując punkty kodowe od 160.
Ostatnia linia po prostu ustawia współrzędne
(forbidden char, 10)
na 1, tworząc tabelę przeglądową. Czwarty wiersz sprawdza następnie każdy znak wejściowy za pomocą tabeli odnośników, wysyłając komunikat o herezji, jeśli jeszcze 1 trwa. W EOF poruszamy się w górę, aby wyświetlić komunikat o zezwoleniu.źródło
„Javascript” 840 * 2 + 14 * 5 = 1750;)
Jestem bardzo blisko, po prostu muszę znaleźć sposób na pozbycie się r
Stos nie pozwala mi wkleić tutaj kodu, ponieważ w ciągach znajduje się kilka niedrukowalnych znaków ASCII, więc oto zrzut heksowy z xxd
źródło