Это женское или мужское слово?


12

Напишите программу или функцию, которая принимает одну строку, содержащую только строчную букву z, и печатает или возвращает истинное значение, если слово является женской версией того, что оно представляет, и ложное значение, если это мужская версия. Например, 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
    

Так, например, вы можете выбрать категории «Общий» и «Семейный». Тогда любой ввод из heto sirили fatherto nephewбудет давать ложное значение, а любой ввод из sheto madamили motherto nieceбудет давать истинное значение.

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

Самый короткий ответ в байтах побеждает. Tiebreaker - более ранний пост.

(Эта задача не предназначена для того, чтобы соотносить или делать заявления о любых текущих гендерных социальных проблемах .)



Не должно countбыть мужским countess?
mbomb007


3
Три ответа, все Retina.
Алекс А.

Ответы:


9

Сетчатка , 26 байт (наборы 4, 5)

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

Retina - это язык регулярных выражений @ MartinBüttner. Я не использовал ничего конкретного для регулярных выражений .NET, поэтому вы можете проверить регулярное выражение в Regex101 здесь . В качестве альтернативы вы можете использовать Gрежим grep Retina следующим образом:

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

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

Retina выводит количество совпадений по умолчанию, давая нам значение истинности / ложности. Правило «значения не обязательно должны быть одного и того же типа« истина / ложь »» очень важно, хотя, так как marchionessсовпадает дважды, выдает результат 2.

(Использование метода цепочки модов из предыдущего вопроса о мужчине и женщине кажется короче в CJam, но я позволю кому-то другому сделать это)


2
время никогда не теряется на регулярное выражение
CousinCocaine

3

Retina, 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.