Apakah itu kata Feminin atau Maskulin?

12

Tulis sebuah program atau fungsi yang mengambil string tunggal yang hanya mengandung huruf kecil az, dan mencetak atau mengembalikan nilai kebenaran jika kata tersebut adalah versi feminin dari hal yang diwakilinya dan nilai palsu jika itu adalah versi maskulin . Sebagai contoh, henadalah versi feminin untuk ayam dan roostermerupakan versi maskulin, jadi henmungkin menghasilkan 1dan roostermungkin menghasilkan 0.

Melakukan ini untuk semua kata bahasa Inggris yang mencerminkan gender tentu saja akan terlalu sulit. Program / fungsi Anda hanya perlu mendukung 20 pasangan maskulin / feminin. Di bawah ini adalah lima pasang 10 pasangan maskulin / feminin, dikategorikan berdasarkan topik. Pilih salah satu dari dua set; 20 pasangan total dalam dua set ini adalah 40 kata yang harus dijalankan oleh program / fungsi Anda.

(format adalah masculine_version feminine_version)

  1. Umum

    he she
    him her
    man woman
    boy girl
    male female
    masculine feminine
    guy gal
    lad lass
    mister miss
    sir madam
    
  2. Kekeluargaan

    father mother
    dad mom
    pa ma
    son daughter
    brother sister
    husband wife
    grandfather grandmother
    grandpa grandma
    uncle aunt
    nephew niece
    
  3. Satwa

    lion lioness
    rooster hen
    stallion mare
    bull cow
    drake duck
    boar sow
    buck doe
    ram ewe
    gander goose
    billy nanny
    
  4. Kerajaan

    king queen
    prince princess
    emperor empress
    duke duchess
    marquess marchioness
    earl countess
    baron baroness
    baronet baronetess
    lord lady
    knight dame
    
  5. Fantastis

    wizard witch
    giant giantess
    incubus succubus
    nidorino nidorina
    nidoking nidoqueen
    ents entwives
    hanuvoite inimeite
    centaur centaurides
    merman mermaid
    khal khaleesi
    

Jadi, misalnya, Anda dapat memilih kategori Umum dan Keluarga. Kemudian setiap input dari heke siratau fatherke nephewakan menghasilkan nilai palsu, dan input apa pun dari sheke madamatau motheruntuk nieceakan menghasilkan nilai kebenaran.

Nilai-nilai tidak semua harus memiliki tipe kebenaran / kepalsuan yang sama, misalnya hemungkin menghasilkan 0tetapi sirmungkin menghasilkan false. Anda dapat mengasumsikan hanya 40 kata az huruf kecil spesifik dari dua kategori yang dipilih yang pernah diinput.

Jawaban terpendek dalam byte menang. Tiebreaker adalah posting sebelumnya.

(Tantangan ini tidak dimaksudkan untuk berkorelasi dengan atau membuat pernyataan tentang masalah sosial berbasis gender saat ini .)

Hobi Calvin
sumber
1
Terkait
Martin Ender
Bukankah countseharusnya maskulin countess?
mbomb007
@ mbomb007 Belum tentu.
Calvin Hobi
3
Tiga jawaban, semua Retina.
Alex A.

Jawaban:

9

Retina , 26 byte (set 4, 5)

[^u]es|ee|m.i|y|^...c|d.*a

Retina adalah bahasa regex @ MartinBüttner. Saya belum pernah menggunakan sesuatu yang khusus untuk .NET regex, sehingga Anda dapat menguji regex di Regex101 di sini . Atau Anda dapat menggunakan Gmode grep Retina seperti:

G`[^u]es|ee|m.i|y|^...c|d.*a

dan pipa dalam file dengan satu kata per baris untuk pengujian batch.

Retina menampilkan jumlah pertandingan secara default, memberi kami nilai kebenaran / kepalsuan kami. Aturan "nilai-nilai tidak semua harus menjadi tipe kebenaran / kepalsuan yang sama" cukup penting meskipun karena marchionesscocok dua kali, memberikan hasil 2.

(Menggunakan metode mod-chaining dari pertanyaan pria / wanita sebelumnya tampaknya lebih pendek di CJam, tapi saya akan membiarkan orang lain melakukannya)

Sp3000
sumber
2
waktu tidak pernah terbuang untuk ekspresi reguler
SepupuCocaine
3

Retina, 39 32 byte (set 2, 4)

Akuntansi marquessitu menjengkelkan, karena menggunakan maadalah cara terbaik untuk mendapatkan beberapa feminin.

[^u]es|ma$|mo|y|[mie]e|wi|ter|au

Coba di sini

Terima kasih kepada Sp3000 untuk saran golfnya.

mbomb007
sumber
@ Sp3000 Ah, terima kasih. Saya tidak memperhatikan bahwa saya dapat menggunakannya $untuk itu.
mbomb007
2

Retina, 28 byte (set 3,4)

w|[mhorse]e|[^u]es|duc|[dn]y

Retina menggunakan .NET regex, tetapi rasa apa pun harus bekerja. Uji di Regex101 .

NinjaBearMonkey
sumber