Santa's Entscheidung:
Bei dieser Herausforderung helfen Sie dem Weihnachtsmann, zu entscheiden, ob jemand auf seiner Liste frech oder nett war, und erhalten anschließend coal
oder toys
.
Leider ist der Weihnachtsmann in einigen seiner Einträge unorganisiert naughty
, nice
und name
Felder sind in der falschen Reihenfolge.
Eingang
Die Eingabe erfolgt in folgendem austauschbaren Format:
- der Name der Person (darf nur keinen Doppelpunkt enthalten)
a-zA-Z0-9
) - das Wort
naughty
direkt gefolgt von einem Doppelpunkt und einer nicht-negativen Ganzzahl, die angibt, wie oft der Weihnachtsmann Sie als ungezogen empfunden hat - Das Wort wird
nice
direkt gefolgt von einem Doppelpunkt und einer nicht-negativen Ganzzahl, die angibt, wie oft der Weihnachtsmann Sie nett erwischt hat
Alle werden durch ein einzelnes Leerzeichen (ASCII 32) voneinander getrennt.
Darüber hinaus wird der Name kein Leerzeichen zwischen den Teilen des Namens haben Santa Claus
-> SantaClaus
.
Bonus:
- (25%) : Er ist Weihnachtsmann, also muss er die Liste zweimal überprüfen und sicherstellen, dass es keine Duplikate gibt. (In diesem Fall erhält es nur die ersten Punkte, die der Benutzer hat.)
Beispiel:
Quill naughty:4 nice:0
naughty:0 Doorknob nice:3
naughty:2 Quill nice:6
nice:3 balpha naughty:3
pops nice:4 naughty:2
Ausgabe:
Die Ausgabe sollte bestehen aus:
Der Name der Person, gefolgt von:
- Wenn mehr Punkte drin sind
naughty
, danncoal
: - Wenn mehr Punkte drin sind
nice
, danntoys
. Aber wenn
naughty
undnice
gleich sind, dannneeds more data
Beispielausgabe:
- Mit Organisationsbonus und Doppelentfernungsbonus:
Quill coal
Doorknob toys
balpha needs more data
pops toys
- Ohne Bonus:
Quill coal
Doorknob toys
Quill toys
balpha needs more data
pops toys
Antworten:
Pyth, 68 Bytes - 25% = 51
Probieren Sie es online aus: Demonstration
quelle
Julia,
176169 BytesDies ist eine anonyme Funktion, die eine Zeichenfolge akzeptiert und das Ergebnis an STDOUT ausgibt. Um es zu nennen, geben Sie ihm einen Namen, z
f=s->...
.Ungolfed:
quelle
Pyth - 64 Bytes
Versucht, gepackte Zeichenfolgen zu verwenden.
Probieren Sie es hier online aus .
quelle
Ruby,
144123155 * .75 = 116,25 BytesVielen Dank an Histocrat für den Vorschlag der
grep
Methode.164 * .75 = 123 Bytes
144 Bytes
Ungolfed
Verwendung:
quelle
.select{|t|t[?:]}
kann gespielt werden.grep(/:/)
Perl,
13811310510310296 - 25% = 72beinhaltet +1 für
-p
Weniger golfen:
nice
odernaughty
als Variablennamen verwenden.<=>
Indizieren einer Liste von Ausgabezeichenfolgen.nice
odernaughty
anstelle des zweiten verwendest.$$_ ? ... : ($$_++, ...)
in$$_++ ? ... : ...
(warum habe ich das vorher nicht gesehen).
quelle
JavaScript (ES6), 174 Bytes - 25% Bonus = 130,5 Punkte
Erläuterung
Prüfung
Code-Snippet anzeigen
quelle
CJam, 64 Bytes
Probieren Sie es online!
quelle
Lua, 329 Bytes - 25% Bonus = 246,75
Wird in ungolfed version und erklärungen später etwas müde editieren. Alle Eingaben werden über die Befehlszeile eingegeben, wobei die Leerzeichen voneinander getrennt sind.
quelle
Python 2, 206 Bytes - 25% = 154,5
quelle
JavaScript (ES6) 120 (160-25%)
Bei der anonymen Funktion mit Vorlagenzeichenfolgen gibt es 4 Zeilenumbrüche, die von Bedeutung sind und in der Byteanzahl enthalten sind
quelle