Anda harus menulis program yang sangat kecil dalam 100 karakter. Program Anda harus membedakan antara nomina Prancis maskulin dan feminin. Hasilnya harus un
jika itu maskulin dan une
feminin. Seringkali, ada aturan statistik tertentu yang dapat Anda ikuti (misalnya jika diakhiri dengan "e", itu lebih cenderung feminin daripada maskulin).
Masukan :
Kata Prancis; mungkin terdiri dari huruf kecil dan garis kecil, termasuk huruf kecil dengan aksen.
Contoh input: ami
Keluaran :
un
jika kata itu maskulin dan une
jika kata itu feminin.
Contoh output: un
Anda tidak harus mendapatkan setiap kata dengan benar; tujuan Anda adalah seakurat mungkin.
Penilaian : Jawaban Anda harus dalam 100 karakter. Pernyataan seperti print
atau console.log
atau alert
tidak tidak dihitung sebagai bagian dari keseluruhan byte Anda. Anda juga dapat menulis fungsi atau metode yang melakukan tugas ini, dalam hal ini beberapa byte pertama (misalnya f=x=>
) yang merupakan bagian dari deklarasi fungsi tidak dihitung dengan total Anda. Skor total Anda adalah jumlah jawaban yang salah. Dasi dipecah berdasarkan ukuran kode.
Kata benda untuk diuji dengan:
un ami
un café
un chapeau
un concert
un crayon
un garage
un garçon
un lit
un livre
un mari
un musée
un oncle
un ordinateur
un pantalon
un piano
un pique-nique
un portable
un père
un sandwich
un saxophone
un stade
un stylo
un théâtre
un téléphone
un voisin
une botte
une boum
une chaise
une chaussette
une chemise
une clarinette
une copine
une femme
une fille
une glace
une heure
une lampe
une maison
une montagne
une personne
une piscine
une pizza
une radio
une raquette
une salade
une souris
une sœur
une table
une télé
une voiture
Jawaban:
CJam, 0 salah,
3229 byteKode ini menggunakan beberapa karakter aneh (beberapa di antaranya tidak dapat dicetak), tetapi semuanya baik-baik saja dalam rentang ASCII yang diperluas. Jadi sekali lagi, saya menghitung setiap karakter sebagai satu byte.
Karena karakter yang tidak patut dicetak, saya yakin Stack Exchange menelan beberapa, jadi Anda mungkin ingin menyalin kode dari penghitung karakter (ini menunjukkan byte dengan pengkodean UTF-8, yang suboptimal untuk tantangan ini; juga, tautannya tidak t tampaknya berfungsi di Firefox, tetapi berhasil di Chrome).
Uji di sini.
Setelah beberapa diskusi lagi dalam obrolan, kami pikir golf regex tidak akan membawa kami lebih jauh. Jadi mengikuti saran saya sebelumnya (bercanda), kami mulai melihat ke dalam memanipulasi kode karakter kata-kata dengan fungsi tertentu, sehingga semua kata dari satu kelompok akan menghasilkan angka dengan beberapa properti yang mudah untuk diperiksa. Dan kami menjadi lebih beruntung dari yang kami harapkan! Inilah yang dilakukan kode terhadap kata-kata:
[133, 122, 80, 66, 58, 26, 20, 14, 9, 4]
. Urutan angka ini sendiri dikodekan sebagai titik kode string (ini adalah tempat karakter aneh dan tidak patut dicetak).0
atau1
, dan semua 25 nomina feminin menghasilkan2
atau3
dengan prosedur ini. Jadi jika kita membaginya dengan2
(pembagian integer) kita mendapatkan nol untuk kata benda maskulin dan yang untuk kata benda feminin.Untuk mengatasinya, kami mendorong
"un"
tumpukan, kami mendorong satue
. Kemudian kita membaca kata input dari STDIN dan melakukan perhitungan di atas, dan akhirnya mengalikane
hasilnya.Saya belum pernah melipat modulo ke daftar mana pun sebelumnya, dan saya merasa seperti tidak akan pernah lagi ...
Terima kasih banyak untuk xnor dan Sp3000 karena telah melempar ide dan membantu mencari rantai pembagi.
sumber
Ruby, 0 salah,
635653525150 byteSemua karakter dalam ASCII yang diperluas , khususnya ISO 8859-1 , jadi saya menghitung setiap karakter sebagai satu byte.
Sepertinya set tes Anda agak terlalu pendek. Saya telah membuat regex dengan pegolf meta regex Peter Norvig .
Anda dapat memanggil fungsi di atas seperti
f["ami"]
. Anda dapat menggunakan alat uji ini untuk memeriksa semua kasus uji:Uji di Coding Ground.
Sunting: Menggunakan skrip kedua Peter Norvig saya menemukan regex yang berbeda, yang sebenarnya satu byte lebih lama, tetapi saya dapat mempersingkat dua byte dengan tangan.
Sunting: Sp3000 mengatur regex pegolf yang dia tulis untuk tantangan regex saya baru-baru ini di atasnya, dan menemukan
363534 byte regex untuk saya gunakan. Terima kasih untuk itu!sumber
table
merupakan substring dariportable
, dan beralih yang diatur agar cocok tidak sangat berguna karena set kedua tampaknya lebih mudah untuk mencocokkan ...CJam, 0 kesalahan (
36322928 byte)Ini adalah fungsi bernama, jadi saya hanya menghitung kode bagian dalam. Juga,
o
merupakan pernyataan cetak, sehingga tidak berkontribusi pada jumlah byte.Coba kasus uji dalam juru bahasa CJam .
Bagaimana itu bekerja
Hanya fungsi hash dan pencarian tabel.
sumber