Bei dieser Herausforderung musst du diese Herausforderung lösen.
Wettbewerb ist vorbei! Überprüfen Sie das Ende der Frage
Technische Daten:
- Schreiben Sie den kleinsten Code (Beliebige Sprache *).
- Die Punktzahl einer Antwort ist die Summe von:
- Codelänge ohne Leerzeichen .
- Anzahl der Antworten in derselben Sprache im Quadrat.
- Länge des Namens der größten Sprache im Wettbewerb abzüglich der Länge Ihrer Sprache.
- Downvotes minus Upvotes (aka minus Gesamtzahl der Stimmen)
- Schreiben Sie die Position der Benutzer und die Punktzahl.
- Jeder Benutzer kann nur eine Antwort schreiben.
- Die niedrigste Punktzahl gewinnt.
Testen:
Am Ende des Wettbewerbs könnte eine mögliche Eingabe sein (STDIN):
Die Spalten lauten: Benutzername, Sprache, Codelänge (ohne Leerzeichen) und TotalVotes
UserA Python 100 1
UserB Perl 30 2
UserC Java 500 3
UserD Brainfuck 499 4
UserE Perl 29 5
Wenn Ihr Benutzername Leerzeichen wie "Mein Benutzername" enthält, wird er zu "Mein Benutzername", sodass die Eingabe immer genau 4 Spalten enthält .
Die Ausgabe wird (STDOUT) sein:
1 UserE 33
2 UserB 37
3 UserA 103
4 UserD 496
5 UserC 503
Erläuterung:
User P N^2 L V
A 100 1 3 -1
B 30 4 5 -2
C 500 1 5 -3
D 499 1 0 -4
E 29 4 5 -5
Brainfuck ist der größte Name mit 9 Zeichen ( 9 - 9 = 0
).
Perl und Java haben 4 Zeichen ( 9 - 4 = 5
).
Python hat 6 Zeichen ( 9 - 6 = 3
).
Perl hat 2 Einträge, also bekommt jeder 4 Extrapunkte.
Über Sprachen:
Der Name der Sprache darf nur englische Buchstaben enthalten (dh [A-Za-z]) und diejenigen, die nicht passen, müssen in etwas anderes "übersetzt" werden.
Am Ende des Wettbewerbs muss jede Sprache ihre Repräsentation haben (Sie können bessere Repräsentationen vorschlagen)
Beispiele:
Python3 -> Python
Ruby1.9 -> Ruby
Shell Script -> Shell
C++ -> Cpp
C# -> CSharp
><> -> Fish
Einsendeschluss: 20. August 2011 00:00 UTC
Am Ende des Wettbewerbs muss der Gewinner sein / ihr Programm verwenden, um den Gewinner zu finden. Nicht-Gewinner dürfen ihre Programme verwenden, um den Gewinner zu finden, und ihn auffordern, sein Programm zu verwenden, um den Gewinner zu finden. :)
Der Gewinner (siehe oben) erhält die Antwort!
* Die Whitespace-Sprache hat den unfairen Vorteil, unbegrenzte Komplexität einführen zu können, ohne die Zeichenanzahl zu beeinträchtigen. In Whitespace geschriebene Antworten sind zwar im Wettbewerb, können aber nicht gewinnen.
Wenn Sie die Logik Ihres Programms in Leerzeichen setzen können , können Sie auch nicht gewinnen. Das ist ein subjektives Thema, aber wenn Ihr Programm erheblich größer werden kann, ohne bestraft zu werden, fällt es in diesen Zustand.
Letzte Eingabe
Alphabetische Reihenfolge der Namen (Stand: 20. August 2011 UTC 00:00)
boothby Sage 41 9
Harpyon Python 203 4
JBernardo Python 184 7
JoeyAdams PostgreSQL 225 6
jpjacobs AWK 269 4
Lowjacker Ruby 146 2
PeterTaylor Golfscript 82 4
rmackenzie CommonLisp 542 2
shesek Javascript 243 3
userunknown Scala 252 1
Da die Antworten von mir und Boothby nicht gewinnen dürfen, sollte der Gewinner sich selbst zum Gewinner erklären, indem er diese Frage bearbeitet und die endgültige Ausgabe unten veröffentlicht.
Endgültige Ausgabe
1 boothby 39
2 PeterTaylor 79
3 Lowjacker 151
4 JBernardo 185
5 Harpyon 207
6 JoeyAdams 220
7 shesek 241
8 userunknown 257
9 jpjacobs 273
10 rmackenzie 541
Antworten:
Golfscript, 83 Zeichen (82 ohne Leerzeichen)
Erläuterung:
quelle
Salbei:
484241 ohne Leerzeichen (insgesamt 60246 Byte)Nur um ein Idiot zu sein:
Beachten Sie, dass die erste Zeile äquivalent sein sollte
s='\t'
, aber der SE-Codeblock die Registerkarte in 4 Leerzeichen übersetzt.Der Whitespace wird entpackt zu:
Beachten Sie, dass meine Verwendung von
[0..len(inputs)-1]
dafür sorgt, dass dies kein Python-Skript ist, da Sage ein Superpython * ist. Leider greift exec auf Python zurück ... also muss ich es vorbereiten.edit 1: Aufteilen auf Tabs, nicht auf Zeilenumbrüche - was habe ich gedacht? Edit 2: Erleichtert den Code den Augen und recycelt die Aufteilungsregisterkarte, indem eine weitere 'Newline' in den Leerraum verschoben wird
* ok, nicht ganz: wir brechen xor
quelle
Python, 184
Deshalb liebe ich Räume.
Es ist viel lesbarer!
quelle
PostgreSQL - 225 Zeichen ohne Leerzeichen
242 → 225: Ersetzte Unterabfragen mit Windowing - Klauseln .
Getestet auf 9.2devel
Verwendung und Ausgabe:
quelle
Python 2 -
210203 Nicht-LeerzeichenVerwendung und Ausgabe:
quelle
x.split()
(das wird auch entfernen\n
)AWK,
277269 Zeichen ohne LeerzeichenGebraucht
in
8 Zeichen zu schneiden.Spaced Version und kommentierte Version:
Verwendung:
quelle
sed '/#/ d' meta.awk|sed ':a;$!N;s/\n//;ta;s/\s//g;'|wc -c
zum Zählen von Zeichen verwendet.Ruby, 146 Zeichen + 4 Leerzeichen
quelle
JavaScript, 243 Zeichen
Länger als die meisten anderen Lösungen ... aber das Beste, was ich in JavaScript finden konnte.
Verwendung
Die Eingabe sollte in einer J-Variablen erfolgen. Öffnen Sie zum Beispiel eine Konsole und schreiben Sie:
CoffeScript, 177 Zeichen
Über die gleiche Logik in CoffeScript:
quelle
length
Attribut mit einer Variablen und Indizes abkürzen .Common Lisp - 546
(wenn Golfspieler Klammern festigen, Leerzeichen nicht mitzählen)
Stark golfen, war und ist meine übliche Lisp-Lösung die längste auf dem Brett. Also habe ich mich entschlossen, ein bisschen zu schummeln, indem ich einen deutlich kürzeren Bootloader geschrieben und das als meine Vorlage angegeben habe.
(Ich betrachte @ Boothbys Einreichung als Präzedenzfall für dieses Verhalten.)Ein großes Dankeschön an Peter Taylor für seine Hilfe beim Herauspressen des letzten Chars aus diesem Bootstrapper.
BASH - 35
Verwendung : cat ./test0 | bash ./btstrp.sh
Joey Adams wies darauf hin, dass dies keine faire Lösung ist, da ich "die Komplexität Ihrer Lösung willkürlich erhöhen kann, ohne die Codegröße entsprechend zu erhöhen", ein Punkt, der in der Spezifikation nicht klar zum Ausdruck kommt.
quelle
$REPLY
. Versuchen Sie eswhile read x;do a=$x"\n"$a;done
. Und Sie sollten in der Lage sein, die Leerzeichen nach dem|
s in der letzten Zeile zu entfernen . In einem anderen Punkt bin ich mir nicht sicher, ob die Verwendung einer internen IP-Adresse sehr nützlich ist: Sie wird für niemanden anders funktionieren.wget -q http://url/l.lsp ;cat - |clisp l.lsp
Scala
269 266252 ohne Leerzeichen und Zeilenumbrüche.Aufruf:
Aktualisierung:
meine Lösung:
*) aus dem Wettbewerb
quelle
stdin
anstelle von verwendenfromFile(System.in)
.