Martin stworzył fajny fragment, który można wykorzystać do śledzenia wyniku w odpowiedziach na wyzwania. To świetnie i wszystko, ale czy nie byłoby lepiej, gdybyś sam mógł to śledzić?
Utwórz program, który porówna liczbę bajtów sam w sobie z resztą odpowiedzi na to pytanie i zwróci „Jestem numerem n”.
Zasady:
Liczba bajtów we własnej odpowiedzi może być zapisana na stałe w kodzie
Funkcja może przyjmować adres URL jako dane wejściowe lub może być zakodowana na stałe. Znaki dla adresu URL nie będą się liczyć do liczby bajtów, więc nie trzeba używać skracacza adresów URL.
adresów URL do odpowiedzi nie można zakodować na stałe
Wynik dla odpowiedzi można znaleźć w nagłówku (tak samo jak fragment kodu Martina).
Nagłówek odpowiedzi musi mieć poprawny format (opisany poniżej).
Jeśli możliwe jest uruchomienie programu online, udostępnij link do kompilatora online (lub fragment kodu, który można wykonać z odpowiedzi). Jeśli nie jest to możliwe, proszę pokazać, jak wywołać tę funkcję i pokazać dane wyjściowe z własnego kompilatora (w momencie, gdy opublikowałeś odpowiedź. Nie musisz jej aktualizować, chyba że chcesz).
Musisz porównać odpowiedź z innymi odpowiedziami na to pytanie. Samo pisanie scenariusza
I'm answer number 1.
w jakimś języku nie jest legalne.Jeśli inne odpowiedzi mają taką samą liczbę bajtów jak Twoja, możesz wybrać, czy chcesz być najlepszy, czy gorszy.
Nagłówek musi być sformatowany:
# Language Name, N bytes
Nie można użyć przekreślenia itp., Więc jeśli rozmiar kodu zostanie zmieniony, pokaż go pogrubionym tekstem pod nagłówkiem lub wskaż w inny sposób.
Dane wyjściowe muszą być I'm answer number n.
, gdzie liczba n
oznacza pozycję (końcowe znaki nowej linii / spacje są OK). Zatem najkrótsza odpowiedź wyświetli: „Jestem odpowiedzią nr 1”, druga to „Jestem odpowiedzią nr 2”. itp.
To jest kod golfowy, więc wygra najkrótsza odpowiedź w bajtach.
Odpowiedzi:
Perl, 107 bajtów
Nieco mniej golfa:
Przykładowe użycie
źródło
Python 2, 145 bajtów
Wyjście z 10.10.2015 17:30:00 UTC:
Nie naliczyłem żadnego adresu URL dla mojego wyniku, jeśli powinienem skomentować, ile powinienem do niego dodać. Ma zapisany na stałe wynik, zakłada, że jest już opublikowany. Zepsuje się, jeśli zostanie opublikowanych więcej niż 99 odpowiedzi.
źródło
AutoIt, 175 bajtów
(202 bajty - 27 dla adresu URL)
Wyjście z 2015-10-09 17:47:00 UTC:
źródło
l
zamiastI
, więc źle ją odczytałem. Jedynym powodem, dla którego zdałem sobie z tego sprawę, jest obejrzenie artykułu w Wikipedii , który ma szeryf.JavaScript (ES7), 149 bajtów
283 bajtów - 134 dla adresu URL. Nigdy wcześniej nie korzystałem z żądań HTTP, ale proszę bardzo ...
Testy zakończyły się pomyślnie w przeglądarce Firefox 41.
Najpierw przegląda nagłówki wszystkich odpowiedzi w celu znalezienia ich liczby bajtów, a następnie znajduje pierwszą pozycję z liczbą bajtów
243149. Obecnie jest skonfigurowana do sprawdzania tylko pierwszych 100 odpowiedzi, i pęknie, jeśli ktoś osiągnie mniej niż 100 bajtów, ale na razie działa. ;)Dzięki @GeorgeReith za znacznie krótszą technikę. Stara wersja korzystająca z AJAX (243 bajty):
źródło
If other answers have the same number of bytes as your own, you can choose if you want to be best or worse of them.
Nadal w głównym poście; czy coś nie rozumiem?PHP, 158
159164bajty127 bajtów z
'http://api.stackexchange.com/2.2/questions/60204/answers?pagesize=99&order=desc&sort=votes&site=codegolf&filter=!--pn9sqW9y0T'
niezliczonychSformatowana wersja z niepoliczonymi ciągami:
$h
Sekwencje znaków, takie jak,
¶Ø’ßž‘Œˆšß‘Š’šß
są poprawnymi stałymi nazwami w PHP, ale ponieważ stałe nie istnieją, są traktowane jak literał łańcuchowy.~
odwraca je, ten na"I'm answer number "
(zapisywanie bajtu dla każdego znaku cudzysłowu)Stosowanie
źródło
$a
zmienna jest naprawdę konieczna? Dlaczego po prostu nie robisz$h[]=json_decode(…)[items][+$i++][body]
? Nawiasem mówiąc, jakie są te dziwne postacie?" "
(3 bajty) można zmniejszyć do~ß
(2 bajtów)json_decode
i tylkosplit
on':'
albo coś, np codepad.org/7rZg06byJavaScript (ES6), 186 bajtów
(335–149 bajtów dla adresu URL)
źródło
\x3C
zamiast<
?Awk, 153 bajty
Powinno to zostać zapisane w pliku
a
i działać jak:Odejmuję 68 bajtów
http://codegolf.stackexchange.com/questions/60204/how-are-you-doing
i dodam 13 do kodu ładowania początkowegoawk -v u=
i-f a
.Mniej golfa, może być jeszcze krótszy:
Zawsze preferuje się w związkach. Liczba bajtów w każdym jest zakodowana na stałe.
Wersja bardziej golfowa ma skrypt wywołujący się i wysyłający wartość wyjściową przez system. W każdym przypadku liczy się tylko mniej niż zakodowany przyrost wartości
r
, który następnie należy skorygować z powrotem,1
jeśli prowadzi.To nie poprawnie odnaleźć bajtów jeśli nie spacje między
bytes
a</h1>
i pewnie wielu innych przypadkach nie są brane pod uwagę.Na dzień
Sun Oct 11 05:17:51 UTC 2015
dzisiejszy daje to:źródło
GNU Awk, 156 bajtów
(Inspirowane przez n0741337 jest rozwiązanie Awk ).
Ten robi to wszystko sam, bez uruchamiania zewnętrznego polecenia.
Oczekuje nazwy hosta i ścieżki jako osobnych wartości. Biorąc pod uwagę, że są dostępne za darmo, mam nadzieję, że nie łamie to zasad.
Przykładowy przebieg:
źródło