征婚匹配

 

问题

Romeo(罗密欧)是一个 NS GSOH M Veronian(不抽烟,生活在维罗纳,很有幽默感的男性)。Juliet(朱丽叶)WLTM(愿意找一个)NS GSOH M,Romeo 能成吗?

Suitor 表展示了每一个征婚者的姓名:

Name
Romeo
Paris

has 表给出了他们的个性特征:

Name Has_quality
Romeo NS
Romeo GSOH
Romeo Veronian
Romeo M
Paris NS
Paris M
……

Wltm 表展示了 Juliet 要求的个性:

Name Has_quality
Juliet NS
Juliet GSOH
Juliet M

请找出所有符合 Juliet 的要求的征婚者。

思路

大致思路:先获取每位应征者的个性,再对每位征婚者进行循环,看应征者的个性是否满足征婚者的要求,返回符合要求的人员名单。

代码

A
1 =file("C:\\txt\\Suitor.txt").import@t()
2 =file("C:\\txt\\has.txt").import@t()
3 =file("C:\\txt\\Wltm.txt").import@t()
4 =A2.group(Name) 应征者按姓名分组
5 =A3.select(Name=="JULIET").(QUALITY) juliet 要求的个性
6 =A4.select(~.(Has_Quality).pos(A5)!=null) 符合 juliet 要求的组
7 =A6.(Name) 返回符合要求的名单

结果

imagepng