Jak wszyscy wiedzą , dodanie inator-3000
na końcu dowolnego rzeczownika sprawia, że jest znacznie fajniej. Ale co jeszcze może sprawić, że słowo będzie fajniejsze?
Biorąc pod uwagę ciąg ASCII jako dane wejściowe, wypisz chłód słowa.
Obliczanie chłodu
Istnieją 4 elementy do obliczenia chłodu słowa.
- Samo słowo. Podstawowy wynik to liczba wielkich liter pomnożona przez 1000
- Numer końcowy. Liczba na końcu słowa (na przykład burninator- 3000 ) jest dodawana do wyniku podstawowego, ale jeśli liczba jest większa niż 4 cyfry, są one zbyt zachłanne i liczbę należy zignorować.
- Złącze Spacja przed liczbą końcową dodaje 1000, podczas gdy myślnik dodaje 2000, jakikolwiek inny symbol lub żaden symbol nie ma żadnego efektu.
- Sufiks Jeśli słowo się kończy
ator
, podwój wynik końcowy. Jeśli to się skończyinator
, potroić wynik. Nie uwzględnia się wielkości liter.
Na przykład Burninator-3000
można obliczyć w następujący sposób:
1 Capital letter - Base Score: 1000
(1000(base) + 3000(number) + 2000(hyphen)) * 3(suffix) = 18000
Przypadki testowe
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
Punktacja
To jest golf golfowy , więc wygrywa najmniej bajtów w każdym języku !
inator ator hello world-1000
(lub podobny)9028
i-7282
(tylko cyfry)burninator 99999
3000 nie ma 1000? Space dodaje 1000 i potroił, aby zakończyć na inator.Odpowiedzi:
JavaScript (ES6),
138133128 bajtówW jaki sposób?
Liczbę wielkich liter podaje:
Wszystkie pozostałe kryteria są wywnioskowane z wyniku następującego wyrażenia regularnego, które jest podzielone na 4 zmienne:
Przypadki testowe
Pokaż fragment kodu
źródło
Wanilia C, 447 bajtów
(Zawijany dla czytelności)
... a nawet ... piątek nastrój!
(Nie użyłem żadnych narzędzi do aliasowania kodu. Właściwie to mam szczęście, że wybrałem odpowiednie szerokości kolumn bez żadnych wstępnych obliczeń. A nawet się kompiluje!)
Wanilia C, 789 bajtów
Oryginalny kod:
Po 1. minimalizacji:
Przypadki testowe
źródło
C #,
322317 bajtówWypróbuj online!
Pełna / sformatowana wersja:
Podział wyrażenia regularnego na jego własną metodę jest teraz o 4 bajty dłuższy (chyba że coś przeoczyłem), ponieważ jest dozwolony tylko jeden lambda. To jest w 321 bajtów:
źródło
b=c=>d=>c.Groups[d].Value
oszczędziłaby trochę?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);
ale wierzę, że dzięki temu jest o 3 bajty więcej.Perl, 108 bajtów
Kod 107 bajtów + 1 dla
-p
.Wypróbuj online!
źródło
PHP> = 7,1, 165 bajtów
Przypadki testowe
źródło