Di Skyrim, karakter pemain dapat menggunakan teriakan sihir yang kuat (Thu'ums) untuk mencapai tujuan mereka. Setiap teriakan terdiri dari tiga kata, namun, pemain dapat menggunakan satu atau dua kata pertama untuk mencapai efek yang sama dengan daya lebih sedikit tetapi pada cooldown yang lebih pendek.
Dengan frasa ASCII Thu'um huruf kecil tanpa tanda baca atau spasi , kembalikan jumlah kata kekuatan yang dikandungnya.
Contoh:
fusrodah -> 3
dur -> 1
kaandrem -> 2
odah -> 2
vengaarnos -> 3
Input akan selalu berupa string ASCII huruf kecil yang dibentuk dengan mengambil salah satu teriakan di bawah ini, memilih 1, 2, atau 3 kata pertama dari teriakan itu, dan menyatukan kata-kata secara berurutan.
dur neh viir
faas ru maar
feim zii gron
fo krah diin
fus ro dah
gaan lah haas
gol hah dov
hun kaal zoor
iiz slen nus
joor zah frul
kaan drem ov
krii lun aus
laas yah nir
lok vah koor
mid vur shaan
mul qah diiv
od ah viing
raan mir tah
rii vaaz zol
strun bah qo
su grah dun
tiid klo ul
ven gaar nos
wuld nah kest
yol toor shul
zul mey gut
zun haal viik
Jadi fus
,, fusro
dan fusrodah
semuanya adalah input yang valid, tetapi fusroviir
bukan karena ia menggunakan kata-kata dari teriakan campuran, dan rodah
bukan karena itu bukan awalan dari teriakan. Anda juga tidak harus menangani input string kosong.
Kode terpendek dalam byte menang.
Jawaban:
Retina,
78421514 byteCobalah online
tiidkloul adalah satu-satunya kata yang tidak memiliki jumlah urutan vokal yang sama dengan jumlah yang seharusnya dicetak. Karena itu kita perlu mencocokkan kata untuk memberikan urutan vokal tambahan.
ou
hanya akan cocok dengan tiidkl ou l dan kemudian kita dapat mengganti ou dengan oxo yang menciptakan urutan tambahan.Pendekatan awal saya tidak sesederhana ini, tetapi dibangun dengan menghilangkan semua konsonan, kemudian menghapus beberapa urutan vokal (
ai|ii|aa|...
) dan akhirnya menghitung jumlah huruf. Tetapi terima kasih kepada @Martin Büttner karena telah memikirkannya[aeiou]+
.sumber
Retina , 313 byte
Cobalah online!
Berdasarkan beberapa pengamatan sederhana:
Itu berarti kita bisa menghitung berapa banyak kata yang muncul dalam string tanpa tumpang tindih. Itulah tepatnya yang dilakukan regex. Saya sudah mencoba mengompresi regex sedikit di luar hanya menggabungkan semua kata dengan
|
(yang akan menjadi 351 byte), tapi saya yakin ini masih jauh dari optimal. Sebagai permulaan, saya sudah pasti tidak mengeksploitasi semua bagian umum secara optimal. Tetapi yang lebih penting, mungkin untuk mengompresi string lebih jauh dengan membuatnya lebih cocok dengan string daripada kata-kata yang valid, selama itu tidak dapat secara tidak sengaja mencocokkan bagian dari kata yang valid (karena dengan begitu mereka tidak akan pernah cocok). Saya cukup yakin seseorang harus mengotomatiskan kompresi untuk benar-benar memastikan itu optimal.sumber
Perl 5, 28 byte
Jumlah byte termasuk satu untuk
-p
.Dicuri langsung dari dev-null . (Terima kasih, dev-null!)
sumber