Ce mot est-il féminin ou masculin?


12

Écrivez un programme ou une fonction qui prend une chaîne unique ne contenant que des z minuscules et imprime ou renvoie une valeur vraie si le mot est la version féminine de la chose qu'il représente et une valeur fausse s'il s'agit de la version masculine . Par exemple, henest la version féminine pour le poulet et roosterest la version masculine, donc henpourrait produire 1et roosterpourrait produire 0.

Faire cela pour tous les mots anglais qui reflètent le genre serait bien sûr trop compliqué. Votre programme / fonction ne doit prendre en charge que 20 paires masculin / féminin. Vous trouverez ci-dessous cinq ensembles de 10 paires masculin / féminin, classés par sujet. Choisissez deux des ensembles; les 20 paires totales dans ces deux ensembles sont les 40 mots pour lesquels votre programme / fonction doit fonctionner.

(le format est masculine_version feminine_version)

  1. Général

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

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

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

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

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

Ainsi, par exemple, vous pouvez choisir les catégories Général et Familial. Ensuite, toute entrée de heà sirou fatherà nephewproduirait une valeur fausse, et toute entrée de sheà madamou motherà nieceproduirait une valeur vraie.

Il n'est pas nécessaire que toutes les valeurs soient du même type véridique / falsifié, par exemple, elles hepourraient produire 0mais sirpourraient produire false. Vous pouvez supposer que seuls les 40 mots az minuscules spécifiques de vos deux catégories sélectionnées sont jamais entrés.

La réponse la plus courte en octets l'emporte. Tiebreaker est un post antérieur.

(Ce défi n'est pas censé être en corrélation avec ou faire des déclarations sur les problèmes sociaux actuels liés au genre .)



Ne devrait pas countêtre le masculin de countess?
mbomb007


3
Trois réponses, toutes Retina.
Alex A.

Réponses:


9

Rétine , 26 octets (ensembles 4, 5)

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

Retina est le langage d'expression régulière de @ MartinBüttner. Je n'ai utilisé rien de spécifique aux expressions régulières .NET, vous pouvez donc tester l'expression régulière à Regex101 ici . Alternativement, vous pouvez utiliser le Gmode grep de Retina comme ceci:

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

et canalisez dans un fichier avec un mot par ligne pour les tests par lots.

Retina affiche le nombre de correspondances par défaut, nous donnant notre valeur de vérité / fausse. La règle "les valeurs ne doivent pas toutes être du même type véridique / falsifié" est assez importante car elle marchionesscorrespond deux fois, donnant une sortie de 2.

(L'utilisation de la méthode de chaînage de mod de la question précédente homme / femme semble être plus courte dans CJam, mais je laisserai quelqu'un d'autre faire cela)


2
le temps n'est jamais perdu sur une expression régulière
CousinCocaine

3

Rétine, 39 32 octets (ensembles 2, 4)

La comptabilité marquessétait ennuyeuse, car l'utilisation maétait le meilleur moyen d'obtenir certaines des femmes.

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

Essayez-le ici

Merci à Sp3000 pour sa suggestion de golf.



@ Sp3000 Ah, merci. Je n'avais pas remarqué que je pouvais l'utiliser $pour ça.
mbomb007

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.