Wie jeder weiß , macht das Hinzufügen inator-3000
am Ende eines Substantivs es viel cooler. Aber was kann ein Wort noch cooler machen?
Geben Sie bei einer ASCII-Zeichenfolge als Eingabe die Coolness des Wortes aus.
Berechnung der Kühle
Es gibt 4 Elemente, um die Coolness eines Wortes zu berechnen.
- Das Wort selbst. Die Basisbewertung ist die Anzahl der Großbuchstaben multipliziert mit 1000
- Die Endnummer. Eine Zahl am Ende des Wortes (wie burninator- 3000 ) mit der Basisbewertung hinzugefügt, aber wenn die Zahl mehr als 4 Ziffern ist, sie sind zu gierig und die Zahl ignoriert werden soll.
- Der Stecker. Ein Leerzeichen vor der Endzahl fügt 1000 hinzu, während ein Bindestrich 2000 hinzufügt. Jedes andere Symbol oder überhaupt kein Symbol hat keine Auswirkung.
- Das Suffix. Wenn das Wort auf endet
ator
, verdoppeln Sie die Endpunktzahl . Wenn es endetinator
, verdreifachen Sie die Punktzahl. Hierbei wird die Groß- und Kleinschreibung nicht berücksichtigt.
So kann zum Beispiel Burninator-3000
wie folgt gerechnet werden:
1 Capital letter - Base Score: 1000
(1000(base) + 3000(number) + 2000(hyphen)) * 3(suffix) = 18000
Testfälle
Burninator-3000 -> 18000
Burnator3000 -> 8000
BurNinator 100 -> 9300
BuRnInAtOr-7253 -> 42759
burn -> 0
burn- -> 0
bUrn-1 -> 3001
inator-7 -> 6021
ator 56 -> 2112
burninators 1000 -> 2000
burn_1000 -> 1000
BURNINATOR-9999 -> 65997
burninator 99999 -> 3000
burninator_99999 -> 0
Code Golfinator-3000 -> 21000
inator ator hello world-1000 -> 3000
javaiscool_99999 -> 0
hypen-ated -> 0
1000 -> 1000
-1000 -> 3000
10000 -> 0
-10000 -> 2000
BURN1N470R-3000 -> 11000
Wertung
Dies ist Code-Golf , so dass nur wenige Bytes in jeder Sprache gewinnen!
inator ator hello world-1000
(oder ähnlich)9028
und-7282
(nur Ziffern)burninator 99999
3000 nicht 1000? Der Raum addiert 1000 und verdreifacht sich, um mit inator zu enden.Antworten:
JavaScript (ES6),
138133128 BytesWie?
Die Anzahl der Großbuchstaben ergibt sich aus:
Alle anderen Kriterien werden aus dem Ergebnis des folgenden regulären Ausdrucks abgeleitet, der in 4 Variablen aufgeteilt ist:
Testfälle
Code-Snippet anzeigen
quelle
Vanille C, 447 Bytes
(Aus Gründen der Lesbarkeit umbrochen)
... oder sogar ... Freitagsstimmung!
(Ich habe keine Tools verwendet, um den Code anzuwenden. Eigentlich bin ich sehr glücklich, dass ich die richtigen Spaltenbreiten ohne Vorberechnung ausgewählt habe. Und es wird sogar kompiliert!)
Vanille C, 789 Bytes
Originalcode:
Nach der 1. Minimierung:
Testfälle
quelle
C #,
322317 BytesProbieren Sie es online!
Voll / Formatierte Version:
Die Aufteilung des regulären Ausdrucks in eine eigene Methode ist jetzt 4 Byte länger (es sei denn, ich habe etwas übersehen), da nur ein Lambda zulässig ist. Dies kommt es bei 321 Bytes:
quelle
b=c=>d=>c.Groups[d].Value
ein bisschen sparen?string m(string s,int n)=>Text.RegularExpressions.Regex.Match(s,"(.*?)([- ])?(\\d+)$").Groups[n].Value.ToLower();string t=m(s,1),c=m(s,2),n=m(s,3);
aber ich glaube, das macht dann 3 Bytes mehr.Perl, 108 Bytes
107 Byte Code + 1 für
-p
.Probieren Sie es online!
quelle
PHP> = 7.1, 165 Bytes
Testfälle
quelle