为了账号安全,请及时绑定邮箱和手机立即绑定

Java中输入数据集的匹配规则集

Java中输入数据集的匹配规则集

PIPIONE 2024-01-17 20:54:46
我正在解决一个有两个输入集的问题输入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+可能就足够了


查看完整回答
反对 回复 2024-01-17
  • 1 回答
  • 0 关注
  • 44 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信