Seperti yang diketahui semua orang , menambah inator-3000
akhir kata benda membuatnya lebih keren. Tapi apa lagi yang bisa membuat kata lebih keren?
Diberikan string ASCII sebagai input, menampilkan kesejukan kata tersebut.
Menghitung kesejukan
Ada 4 elemen untuk menghitung kesejukan sebuah kata.
- Kata itu sendiri. Skor dasar adalah jumlah huruf kapital dikalikan 1000
- Nomor akhir. Angka di akhir kata (seperti burninator- 3000 ) ditambahkan ke skor dasar, tetapi jika jumlahnya lebih dari 4 digit, angka itu terlalu serakah dan angka itu harus diabaikan.
- Konektor. Ruang sebelum angka akhir menambahkan 1000, sedangkan tanda hubung menambahkan 2000, simbol lainnya, atau tidak ada simbol sama sekali, tidak memiliki efek.
- Sufiks. Jika kata berakhir
ator
, gandakan skor akhir. Jika berakhirinator
, lipat tiga skor. Ini adalah case-sensitive.
Jadi misalnya Burninator-3000
bisa dihitung sebagai berikut:
1 Capital letter - Base Score: 1000
(1000(base) + 3000(number) + 2000(hyphen)) * 3(suffix) = 18000
Testcases
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
Mencetak gol
Ini adalah kode-golf , sehingga byte paling sedikit di setiap bahasa menang!
inator ator hello world-1000
(atau serupa)9028
dan-7282
(Hanya digit)burninator 99999
3000 tidak 1000? Space menambah 1000 dan tiga kali lipat untuk mengakhiri inatorJawaban:
JavaScript (ES6),
138133128 byteBagaimana?
Jumlah huruf kapital diberikan oleh:
Semua kriteria lain disimpulkan dari hasil persamaan reguler berikut, yang dibagi menjadi 4 variabel:
Uji kasus
Tampilkan cuplikan kode
sumber
Vanilla C, 447 byte
(Dibungkus untuk keterbacaan)
... atau bahkan ... Suasana hati Jumat!
(Saya tidak menggunakan alat apa pun untuk menggabungkan kode. Sebenarnya, saya benar-benar beruntung saya memilih lebar kolom yang tepat tanpa perhitungan sebelumnya. Dan bahkan mengkompilasi!)
Vanilla C, 789 byte
Kode asli:
Setelah minimalisasi 1:
Uji kasus
sumber
C #,
322317 byteCobalah online!
Versi Lengkap / Diformat:
Memisahkan regex menjadi metode sendiri sekarang 4 byte lebih lama (kecuali saya melewatkan sesuatu) karena hanya diizinkan satu lambda. Ini muncul pada 321 byte:
sumber
b=c=>d=>c.Groups[d].Value
sedikit menghemat?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);
tetapi saya percaya itu membuat 3 byte lebih.Perl, 108 byte
107 byte kode +1 untuk
-p
.Cobalah online!
sumber
PHP> = 7.1, 165 byte
Testcases
sumber