我有一个大小约为100-200的元素集合,其中样本元素为
每个元素都是一组字符串(这样的集合中的字符串数量在1到4之间)。
对于给定的输入字符串(约100个字符),比如
当且仅当所有属于
元素集合可供预处理。
我希望在Java中尽可能快地实现此操作。不适用于我的要求的可能方法:检查所有字符串
因为
我不能直接使用正则表达式,因为
目前我的方法是构造一个巨大的正则表达式,其中包含每个
请注意,元素集合可供预处理,并且我需要在Java中解决该问题。
X
。每个元素都是一组字符串(这样的集合中的字符串数量在1到4之间)。
X
= {s1
, s2
, s3
}对于给定的输入字符串(约100个字符),比如
P
,我想测试是否存在任何一个X
是“存在于”该字符串中。当且仅当所有属于
X
的s
都是P
的子字符串时,X
存在于P
中。元素集合可供预处理。
我希望在Java中尽可能快地实现此操作。不适用于我的要求的可能方法:
s
是否是P
的子字符串似乎是一项昂贵的操作。s
可以是P
的任何子字符串(不一定是单词),所以我不能使用单词散列s1
、s2
和s3
可以按任意顺序出现,而且所有字符串都需要作为子字符串存在目前我的方法是构造一个巨大的正则表达式,其中包含每个
X
的所有可能顺序的排列。由于X
中的元素数量小于等于4,因此这仍然是可行的。如果有人能向我指出更好(更快/更优雅)的方法,那就太好了。请注意,元素集合可供预处理,并且我需要在Java中解决该问题。