gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:03:49 26 4
gpt4 key购买 nike

我正在解决我有两个输入集的问题

输入1:

多组规则(样本):

规则集 1:

1. I am $name
2. I am $age years old
3. $bookname is my favorite book
....

规则集 2:

1. I love $sportname
2. $color is my favorite color
....

规则集 3:

1. $fruit is my favorite fruit
2. I am a $diet
3. I speak $language
4. I am from $countryname
....

这里 $name,$age,$bookname... 是占位符。可能有多个这样的规则集。没有限制。

输入2:

多组输入字符串。

第 1 组:

1. I am 26 years old
2. I am James
.....

第 2 组:

1. I am John
2. ToKillAMockinBird is my favorite book
.......

第 3 组:

1. TuesdaysWithMorrie is my favorite book
2. I am Bill
3. I am 26 years old
......

第 4 组:

1. I am Jack
2. I am 27 years old
3. WarAndPeace is my favorite book
......

第 5 组:

1. I am a vegan
2. I speak English
......

第 6 组:

1. Purple is my favorite color
2. I love football
......

问题陈述:

对于输入 2 中的每组字符串,我需要与输入 1 进行匹配,并判断这些字符串是否以相同的顺序出现。

输出:

Set1 --> false
Set2 --> true
Set3 --> false
Set4 --> true
Set5 --> true
Set6 --> false

我通过迭代每个输入集中的每个字符串并检查它是否存在来尝试暴力破解,如果存在,则给它们一个数字,最后检查这些数字是否按升序排列。但是,效率不高。输入 Set1、set2 可能是巨大的数据集。有没有更好的方法来解决这个问题?

最佳答案

这里有一个想法:将规则集中的行和输入集中的行连接成一行,并带有一些特殊的分隔符(或者一个环绕的模式)

所以规则集 #1 可以看起来像这样
我是 $name ### 我今年 $age 岁 ### $bookname 是我最喜欢的书
或者像这样
[我是 $name] [我是 $age 岁] [$bookname 是我最喜欢的书]

然后您可以对输入集执行相同的操作并进行比较。在我看来,用正则表达式 \w+ 替换占位符可能就足够了

关于java - 匹配规则集与 Java 中的输入数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58638225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com