Seperti kita ketahui, limerick adalah puisi pendek, lima baris, dan kadang-kadang cabul dengan skema berima AABBA dan meteran permadani (apa pun itu):
Menulis sebuah
baris Limerick yang absurd satu dan baris lima sajak dalam kata
Dan seperti yang Anda anggap
Mereka berima dengan yang kedua
Baris keempat harus berima dengan yang ketiga
Anda ditugasi untuk menulis program terpendek yang, ketika diumpankan teks input, mencetak apakah ia berpikir bahwa input tersebut adalah limerick yang valid. Input dapat berada pada baris perintah atau melalui input standar, pada pilihan Anda, dan output bisa berupa "Y" / "N" sederhana atau skor kepercayaan, lagi pada pilihan Anda.
Inilah contoh lain dari limerick yang benar:
Ada seorang nona muda yang matanya
unik untuk warna dan ukuran.
Ketika dia membukanya lebar-lebar. Semua
orang berbalik
dan mulai terkejut
Tetapi puisi di bawah ini jelas bukan limerick, karena tidak berima:
Ada seorang lelaki tua St. Bees
yang disengat lengannya oleh seekor tawon.
Ketika ditanya, "Apakah itu sakit?"
Dia menjawab, "Tidak, tidak,
aku senang bahwa itu bukan lebah."
Ini juga tidak, karena meteran semuanya salah:
Saya mendengar tentang seorang pria dari Berlin
yang membenci ruangan tempat dia berada.
Ketika saya bertanya mengapa
Dia akan berkata sambil mendesah,
"Ya, begini, tadi malam ada beberapa penjahat di sekitar yang sedang merayakan Beruang-beruang yang memenangkan beruang terkutuk. Piala Dunia, dan mereka sangat keras sehingga saya tidak bisa tidur karena keributan. "
Petunjuk
Berikut adalah beberapa petunjuk yang dapat Anda gunakan untuk memutuskan apakah input Anda adalah limerick:
- Limerick selalu panjang lima baris.
- Baris 1, 2 dan 5 harus berima.
- Baris 3 dan 4 harus berima.
- Baris 1, 2 dan 5 memiliki sekitar 3x3 = 9 suku kata, sedangkan suku ketiga dan keempat memiliki suku kata 2x3 = 6
Perhatikan bahwa tidak satu pun dari ini kecuali yang pertama sulit dan cepat: peringkat kebenaran 100% tidak mungkin.
Aturan
Entri Anda setidaknya harus secara benar mengkategorikan contoh 1 hingga 3 secara deterministik.
Anda yang diperbolehkan untuk menggunakan bahasa pemrograman apapun yang Anda inginkan, kecuali bahasa pemrograman saja dirancang khusus untuk kontes ini (lihat di sini ).
Anda tidak diperbolehkan menggunakan perpustakaan apa pun kecuali penawaran standar bahasa pemrograman Anda.
Anda yang diperbolehkan untuk menganggap bahwa file ini , CMU Sphinx pengucapan kamus, dalam sebuah file yang bernama 'c' di direktori saat ini.
Anda tidak diperbolehkan melakukan hard-kode untuk input tes: program Anda harus menjadi kategorizer limerick umum.
Anda yang diperbolehkan untuk mengasumsikan bahwa input ASCII, tanpa format khusus (seperti pada contoh), tetapi program Anda tidak harus bingung dengan interpunction.
Bonus
Bonus berikut tersedia:
- Program Anda menampilkan hasilnya sebagai limerick? Kurangi bonus panjang 150 karakter !
- Program Anda juga mengidentifikasi soneta dengan benar? Kurangi 150 karakter bonus ekstra panjang!
- Program Anda menampilkan hasilnya sebagai soneta ketika digunakan pada soneta? Kurangi 100 karakter bonus ekstra panjang tambahan!
Akhirnya...
Ingatlah untuk menyebutkan bonus mana yang menurut Anda pantas, jika ada, dan kurangi bonus dari jumlah karakter Anda untuk sampai pada skor Anda. Ini adalah kontes kode golf : entri terpendek (yaitu entri dengan skor terendah) menang.
Jika Anda membutuhkan lebih banyak data tes (positif), lihat OEDILF atau Book of Nonsense . Data tes negatif harus mudah dibuat.
Semoga berhasil!
sumber
code-challenge
karena bonus. Silakan baca deskripsi tagJawaban:
Python: 400 - 150 - 150 = 100
Script terpendek yang bisa saya buat adalah ...
... tapi jangan coba-coba. Ini mem-parsing kamus yang disediakan untuk setiap kata yang ditemuinya, sehingga menjadi sangat lambat. Juga, kesalahan dihasilkan setiap kali sebuah kata tidak ada dalam kamus.
Kode masih memenuhi persyaratan: mengenali apakah teks dilewatkan melalui stdin adalah limerick, soneta, atau bukan keduanya.
Dengan hanya 20 karakter, inilah versi yang dioptimalkan:
fitur
Pemakaian
3 output yang berbeda dimungkinkan:
Kode diperluas dengan penjelasan
sumber
sys.stdin.read()
suatuopen(sys.argv[1]).read()
tempat) dan menceritakannya kembali.ECMAScript 6 (138 poin; coba di Firefox):
288
-150
Poin bonus untuk termasuk limerick (dicubit dari @MathieuRodic).Catatan:
Diharapkan variabel
c
mengandung konten file kamus, karena Anda tidak dapat membaca file dalam skrip ECMAS.ECMAScript tidak memiliki input standar, tetapi
prompt
umumnya dianggap "input standar"; Namun, karenaprompt
mengubah jeda baris ke spasi di sebagian besar (jika tidak semua) browser, saya menerima input dari variabeli
.Kode tidak dikunci:
sumber