我正在解决一个有两个输入集的问题输入1:多组规则(示例):规则集1:1. I am $name2. I am $age years old3. $bookname is my favorite book ....规则集2:1. I love $sportname2. $color is my favorite color ....规则集3:1. $fruit is my favorite fruit2. I am a $diet3. I speak $language4. I am from $countryname ....这里 $name,$age,$bookname... 是占位符。可能有多个这样的规则集。没有限制。输入2:多组输入字符串。套装 1:1. I am 26 years old2. I am James .....套装 2:1. I am John2. ToKillAMockinBird is my favorite book .......第 3 组:1. TuesdaysWithMorrie is my favorite book2. I am Bill3. I am 26 years old ......套装 4:1. I am Jack2. I am 27 years old3. WarAndPeace is my favorite book ......套装 5:1. I am a vegan2. I speak English ......第 6 组:1. Purple is my favorite color2. I love football ......问题陈述 :对于输入 2 中的每个字符串集,我需要与输入 1 进行匹配,并判断这些字符串是否以相同的顺序出现。输出 :Set1 --> falseSet2 --> trueSet3 --> falseSet4 --> trueSet5 --> trueSet6 --> false我尝试通过迭代每个输入集中的每个字符串并检查它是否存在,如果存在,给它们一个数字,最后检查这些数字是否按升序排列来尝试暴力。但是,这效率不高。输入的Set1、Set2可能是巨大的数据集。有更好的方法来解决这个问题吗?
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
这是一个想法:使用一些特殊的分隔符(或者周围的模式)将规则集和输入集中的行连接成一行
所以规则集 #1 可以看起来像这样I am $name ### I am $age years old ### $bookname is my favorite book
或像这样[I am $name] [I am $age years old] [$bookname is my favorite book]
然后您可以对输入集执行相同的操作并进行比较。在我看来,用正则表达式替换占位符\w+
可能就足够了
添加回答
举报
0/150
提交
取消