征婚匹配
问题
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) | 返回符合要求的名单 |
结果


英文版
数据文件
has.txt
Suitor.txt
Wltm.txt