Prämisse:
Ihr Ruf hat die Form eines Stapelwechsels, wenn er dargestellt werden kann, indem Sie Ihre Medaillenzahlen (Gold, Silber und Bronze, die separat gezählt werden) in die 10er-Basisziffern zerlegen und mit ein paar Einschränkungen in einer bestimmten Reihenfolge zusammenfügen.
Während der Zersetzung jeweils
- Goldmedaille Ziffer ist drei Ziffern wert.
- Silber ist zwei Ziffern wert.
- Bronze ist eine Ziffer.
- Darüber hinaus wird keine Medaille Typ angezeigt werden, da SE , wenn Sie nicht haben, eine Zählung von 0 Medaillen für einen Typ wird nicht eine Ausbeute
[0]
.
Beispiel:
[1 Gold, 2 Silvers, 3 Bronzes]
wird zerfallen in[1,1,1,2,2,3]
. 321112 und 213121 sind zwei Beispiele für eine SE-Form-Nummer für diese Medaillen.[20 Golds, 0 Silvers, 20 Bronzes]
wird zerfallen in[2,2,2,0,0,0,2,0]
. 20002022 ist eine SE-Formularnummer.[11 Golds, 0 Silvers, 0 Bronzes]
wird zerfallen in[1,1,1,1,1,1]
. 111111 ist die einzige SE-Formularnummer dafür.
Wenn eine SE-Nummer in Betracht gezogen wird, gibt es keine führenden Nullen. ZB im 2. Beispiel oben 00002222 -> 2222
würde keine SE-Formularnummer für berücksichtigt [20,0,20]
.
Input-Output:
Die Eingabe ist eine Liste / Tupel / Array / was auch immer [reputation, gold_medals, silver_medals, bronze_medals]
alle nicht-negative ganze Zahlen sind. Dies ist die angenommene Reihenfolge, kann aber geändert werden. Notieren Sie sich in Ihrer Antwort, wenn Sie dies tun.
Ausgabe sind zwei konsistente Werte für true und false.
Regeln:
- Die Eingabe ist immer gültig
- Sie werden immer mindestens 1 Rep haben
- Sie können überhaupt keine Medaillen haben, was dann immer falsch sein sollte.
- Die Medaillenzahlen haben keinen Einfluss auf die Realität. Es ist in Ordnung, mehrere hundert Goldstücke und keine Bronzen zu haben.
- Dies ist Code-Golf, also gewinnt die kürzeste Antwort in Bytes.
Testfälle:
#[Rep, Gold, Silver, Bronze] -> Output
[4, 0, 0, 4] -> True
[1447, 0, 4, 17] -> True
[74414, 4, 0, 17] -> True
[4444, 4, 0, 4] -> True
[4455, 0, 54, 0] -> True
[5355, 5, 0, 3] -> True
[53535, 5, 3, 0] -> True
[4444, 0, 0, 4444] -> True
[444, 4, 0, 0] -> True
[1234, 0, 0, 1234] -> True
[1234, 0, 0, 4321] -> True
[4444, 1, 0, 1] -> False
[5555, 5, 0, 55] -> False
[1234, 1, 23, 4] -> False
[1, 0, 0, 0] -> False
[1001001, 0, 10, 10] -> False
quelle
[bronze, silver, gold]
und eine getrennte zweite Eingabe nehmenreputation
?Antworten:
05AB1E ,
1614131110 BytesNimmt die Medailleneingabe in der Reihenfolge
[bronze, silver, gold]
als erste Eingabe undreputation
als zweite Eingabe.-1 Byte dank @Grimy .
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
3L
->∞
für -1.\x19\xd7\x30\x4b\x4a\x82\x80\x7b\xec\xcb
: Es sollte möglich sein, diese hexadezimalen Bytes mit dem--osabie
Flag auszuführen , aber ich bin mir nicht sicher, wie ich das in der 05AB1E Elixir-Version tun soll, um ganz ehrlich zu sein (aber ich werde einige fragen andere, um die Antwort zu bestätigen und sich mit Ihnen in Verbindung zu setzen).JavaScript (ES6),
92 bis74 ByteÜbernimmt die Eingabe als
(['gold','silver','bronze'])('rep')
. Gibt einen Booleschen Wert zurück.Probieren Sie es online!
JavaScript (ES6), 74 Byte
Übernimmt die Eingabe als
(gold, silver, bronze, 'rep')
. Gibt einen Booleschen Wert zurück.Probieren Sie es online!
quelle
MATL ,
28 Bytes20 Bytes16 Bytes13 BytesGibt 0 für falsch und 1 für wahr zurück. Dies kann auf jeden Fall heruntergolfen werden.
Bis zu 16 Bytes, wenn der Reputationswert separat erfasst werden kann und die Reihenfolge [Bronze, Silber, Gold] ist. ReputationBis zu 13 Bytes dank Luis Mendo
Probieren Sie es online!
quelle
Ruby , 69 Bytes
Probieren Sie es online!
quelle
J ,
383431 BytesProbieren Sie es online!
quelle
Japt ,
141312 BytesÜbernimmt die Eingabe als
[rep, bronze, silver, gold]
Probieren Sie es aus oder überprüfen Sie alle Testfälle
quelle
Å
unnötig war, dafn
der erste Wert wegfallen würde. EntfernenÅ
macht es 12 BytesRetina 0,8,2 , 45 Bytes
Probieren Sie es online! Link enthält Testsuite. Erläuterung:
Löschen Sie null Punkte.
Erweitern Sie die Punkte für Gold und Silber und wandeln Sie das Trennzeichen in eine neue Zeile um.
Sortieren Sie die Reputation und die erweiterten Punktzahlen getrennt.
Vergleichen Sie die sortierten Ziffern.
quelle
Gelee , 10 Bytes
Probieren Sie es online!
Argument 1:
[Bronze, Silver, Gold]
Argument 2:
Rep
quelle
Schläger,
14910798 BytesProbieren Sie es online!
Zum ersten Mal Golf in Racket, also immer noch auf der Suche nach Verbesserungen ...
Erklärung (der ursprünglichen längeren Version, aber die gleiche Idee):
quelle
Kohle , 24 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Übernimmt Eingaben in der Reihenfolge rep, bronze, silber, gold und gibt aus,
1
ob die rep gültig ist. Erläuterung:Angenommen, die Wiederholung ist gültig.
Durchlaufen Sie die vier Eingangswerte. Schieben Sie jede Ziffer jedes Werts
i
mal, wobeii
der Index des Werts mit dem Index 0 angegeben ist. Die numerische Basiskonvertierung wird hier verwendet, da sie0
in ein leeres Array konvertiert .Überprüfen Sie, ob die Anzahl der Ziffern im Array mit der Anzahl in der ersten Eingabe übereinstimmt. Wenn es Unterschiede gibt, löschen Sie die Leinwand.
quelle
Jelly , 18 Bytes
Probieren Sie es online!
das ist ein bisschen schlimm
quelle
Python 2 ,
80797768 BytesProbieren Sie es online!
Übernimmt die Eingabe als
rep, gold, silver, bronze
.quelle
Perl 5
-lF
, 62 BytesProbieren Sie es online!
Übernimmt die Eingabe in separaten Zeilen als
quelle