这个词是女性还是男性?


12

写一个程序或函数,它在一个字符串只包含小写字母AZ,并打印或返回truthy值,如果这个词是女性的它所代表的事物和版本falsy值,如果它是阳刚的版本。例如,hen是鸡肉的女性版本和rooster男性的版本,因此hen可能会产生1rooster可能产生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
    

因此,例如,您可以选择“常规”和“家族”类别。然后从任何输入hesirfathernephew将产生falsy值,和从任何输入shemadammotherniece将产生truthy值。

这些值不必全部都是相同的true / falsy类型,例如he可能会产生0sir可能会产生false。您可以假设只输入了两个选定类别中的40个特定的小写az单词。

以字节为单位的最短答案将获胜。Tiebreaker是较早的帖子。

(这一挑战并不意味着与任何当前基于性别的社会问题相关或发表声明。)



count应该是男性countess吗?
mbomb007


3
三个答案,都是视网膜。
Alex A.

Answers:


9

视网膜,26字节(4、5组)

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

视网膜是@MartinBüttner的正则表达式语言。我没有使用任何具体到.NET的正则表达式,所以你可以在Regex101测试正则表达式在这里。另外,您可以使用Retina的grep G模式,如下所示:

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

并以每行一个单词的方式将其放入文件中进行批处理测试。

视网膜默认情况下会输出匹配数,从而为我们提供真实/虚假值。规则“值不必全部为相同的真假类型”非常重要,因为marchioness匹配两次,输出为2。

(在CJam中,使用上一个男性/女性问题中的mod-chaining方法似乎更短一些,但我会让其他人这样做)


2
时间永远不会浪费在正则表达式上
CousinCocaine 2015年


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.