Jadi, Anda ingin membuat haiku, tetapi Anda tidak yakin apakah itu mengikuti aturan suku kata untuk haiku.
Saya tidak bisa repot menulis uraian yang tepat seperti yang biasa saya lakukan, jadi Anda harus puas dengan ini. Mari kita terjebak.
Menemukan haiku di alam liar
Untuk keperluan tantangan ini, kami akan memeriksa apakah puisi yang diberikan memenuhi kriteria ini:
- Ada tiga garis.
- Baris pertama memiliki 5 suku kata.
- Baris kedua memiliki 7 suku kata.
- Baris ketiga memiliki 5 suku kata.
Setiap baris terdiri dari satu kata atau lebih, dipisahkan oleh kelompok spasi. Kata-kata ini belum tentu merupakan kata-kata bahasa Inggris yang valid.
Setiap kata dibagi menjadi suku kata, dan kemudian suku kata tersebut dihitung untuk mendapatkan jumlah suku kata total baris.
Suku kata terdiri dari 2 atau 3 bagian: awal, akhir, dan mungkin tengah. Setiap bagian adalah sekelompok konsonan (juga dikenal sebagai gugus konsonan, seperti s
, sk
atau spl
) atau sekelompok vokal (seperti i
, ea
atau oui
).
Jika yang awalnya adalah sekelompok konsonan, yang di tengah adalah sekelompok vokal dan yang terakhir adalah sekelompok konsonan. Jika awal adalah sekelompok vokal, akhirnya akan menjadi sekelompok konsonan dan tidak akan ada tengah.
Misalnya, kata example
tersebut terdiri dari tiga suku kata ex
,, am
dan ple
. ple
tidak memiliki akhir karena dipotong pada akhir kata.
Sebagai contoh lain, kata tersebut syllable
juga memiliki tiga suku kata syll
,, abl
dan e
, yang juga tidak memiliki akhiran.
Sebagai satu contoh terakhir, kata tersebut word
memiliki satu suku kata word
, yang berakhir dengan sekelompok konsonan.
Tantangan
Diberikan string, daftar string, daftar daftar atau format wajar lainnya yang mewakili sebuah puisi dengan setidaknya satu baris, tentukan apakah itu memenuhi kriteria haiku yang diuraikan di atas dan kembalikan hasilnya.
Anda dapat mengembalikan hasilnya dalam format berikut:
- Nilai kebenaran jika puisi itu adalah haiku dan yang salah sebaliknya.
- Nilai palsu jika puisi itu adalah haiku dan yang benar sebaliknya.
- Nilai dari rentang nilai terbatas yang ditentukan dalam pengiriman jika puisi tersebut adalah haiku dan nilai dari kisaran nilai terbatas yang saling eksklusif juga ditentukan dalam pengiriman.
Anda juga dapat menganggap puisi itu tidak mengandung karakter non-alfabet, tetapi Anda mungkin tidak menganggap bahwa itu sepenuhnya dalam huruf besar atau kecil.
Untuk keperluan tantangan ini, Y
adalah vokal.
Uji kasus
Sejujurnya
This is a haiku
Yes it truly is one
See what I did man
I am so tired
of writing this already
when can I stop this
Writing another
Of these horrific things
Come on please
Consonant only
Counts as one syllable
ghjk tgh knmb wrts vbc
Palsu
oh boy writing non haiku is so much easier
This is
so good
on my
poor dear brain
The syllables do not match
at least I do not think so
I have not checked
It does not really matter
these test cases will help
At least I think they will
I am done here
This is enough
Goodbye
Mencetak gol
Karena ini adalah kode-golf
. Jawaban terpendek akan menang.
Semoga berhasil bagi Anda semua
Jawaban:
Jelly ,
2523 byte-2 Terima kasih kepada Erik the Outgolfer (gunakan daftar baris sebagai masukan)
Tautan monadik mengambil daftar daftar karakter (garis) dan mengembalikan daftar daftar nol dan satu. Haiku yang valid akan menjadi panjang 3 dan sekali salah satu daftar paling dalam yang merupakan nol tunggal diganti dengan yang tunggal, jumlah daftar yang diratakan masing-masing adalah 5, 7, dan 5. Formasi (apakah run huruf adalah konsonan dan hanya mengambil 8 kata pertama dari masing-masing hingga hanya 4 baris) memastikan hanya ada hingga terbatas masing-masing rentang yang valid dan tidak valid.
Cobalah online! atau lihat test-suite (bahkan lebih membingungkan!)
Berikut ini adalah versi
32byte yang jauh lebih mudah digunakan , cukup dengan mengeluarkan 1 atau 0:Coba yang ini atau lihat test-suite-nya .
sumber
Ỵµ
, karena Anda dapat mengambil daftar garis.JavaScript (ES6),
8475 byteMengambil input sebagai daftar daftar kata. Pengembalian
true
untuk haiku ataufalse
untuk non-haiku.Uji kasus
Tampilkan cuplikan kode
sumber
Retina , 49 byte
Cobalah online!
Output
1
untuk haiku,0
untuk non-haiku.sumber
^
dan$
karenax
haikus berturut-turut akan memberikanx
sebagai string.Python 2 ,
126125120121 byteCobalah online!
sumber
s
Perl 5 , 63 + 1 (
-p
) = 64 byteCobalah online!
sumber
Bersih ,
162... 115 byteMenentukan fungsi
@
, mengambil[[[Char]]]
(daftar daftar kata), dan memberiBool
.Kembali
True
ketika input adalah haiku,False
jika tidak.Cobalah online!
sumber
Mathematica 119 Bytes
Berikut adalah versi yang sesuai dengan aturan suku kata yang diberikan:
Berikut adalah versi 83 byte yang sebenarnya menghitung suku kata:
misalnya
kembali
False
karena baris kedua memiliki enam suku kata daripada tujuh yang diperlukan.sumber