Це слово жіноче чи чоловіче?


12

Напишіть програму або функцію, яка містить одну рядок, що містить лише малі літери az, і друкує або повертає просте значення, якщо слово є жіночою версією речі, яку вона представляє, і хибною цінністю, якщо це чоловіча версія. Наприклад, henце жіноча версія для курки і roosterє чоловічою версією, тому вона henможе виробляти 1і roosterможе виробляти 0.

Зробити це для всіх англійських слів, які відображають стать, звичайно було б занадто непростим. Ваша програма / функція повинна підтримувати лише 20 чоловічих / жіночих пар. Нижче представлено п'ять наборів з 10 чоловічих / жіночих пар за категоріями. Виберіть будь-який із двох наборів; 20 загальних пар у цих двох наборах - це 40 слів, над якими повинна працювати ваша програма / функція.

(формат є masculine_version feminine_version)

  1. Загальні

    he she
    him her
    man woman
    boy girl
    male female
    masculine feminine
    guy gal
    lad lass
    mister miss
    sir madam
    
  2. Сімейний

    father mother
    dad mom
    pa ma
    son daughter
    brother sister
    husband wife
    grandfather grandmother
    grandpa grandma
    uncle aunt
    nephew niece
    
  3. Тварина

    lion lioness
    rooster hen
    stallion mare
    bull cow
    drake duck
    boar sow
    buck doe
    ram ewe
    gander goose
    billy nanny
    
  4. Королівський

    king queen
    prince princess
    emperor empress
    duke duchess
    marquess marchioness
    earl countess
    baron baroness
    baronet baronetess
    lord lady
    knight dame
    
  5. Фантастичний

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

Так, наприклад, ви можете вибрати категорії «Загальні та сімейні». Тоді будь-який вхід від heдо sirабо fatherв nephewвироблятиме falsy значення, і будь-який вхід від sheдо madamабо motherв nieceвироблятиме значення truthy.

Не всі значення повинні бути однаковими типовими / хибними, наприклад, heможуть створювати, 0але sirможуть виробляти false. Ви можете припустити, що коли-небудь вводяться лише 40 конкретних азіатських слів із двох вибраних категорій.

Виграє найкоротша відповідь у байтах. Tiebreaker - це раніше повідомлення.

(Цей виклик не призначений для співпраці з будь-якими поточними соціальними проблемами, що ґендерні .



Чи не countслід бути чоловічим countess?
mbomb007


3
Три відповіді, всі Retina.
Олексій А.

Відповіді:


9

Сітківка , 26 байт (набори 4, 5)

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

Сітківка є мовою виразів @ MartinBüttner. Я не використовував нічого специфічного для .NET-регекерів, тому ви можете протестувати регулярний вираз на Regex101 тут . Крім того, ви можете використовувати греп- Gрежим Retina таким чином:

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

і передайте у файл з одним словом на рядок для пакетного тестування.

Retina виводить кількість збігів за замовчуванням, надаючи нам свою правду / хибність. Правило "не всі значення повинні бути однаковими типу" truthy / falesy "" є досить важливим, хоча marchionessзбігається вдвічі, даючи вихід 2.

(Використання методу ланцюга мод з попереднього чоловічого / жіночого питання здається коротшим у CJam, але я дозволю це зробити комусь іншому)


2
Час ніколи не витрачається на регулярний вираз
CousinCocaine

3

Сітківка, 39 32 байти (набори 2, 4)

Облік marquessбув роздратований, оскільки використання maбуло найкращим способом отримати деяких жіночих.

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

Спробуйте тут

Завдяки Sp3000 за пропозицію гольфу.



@ Sp3000 Ах, спасибі Я не помічав, що можу використати $для цього.
mbomb007

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.