我想创建一个方法,在一小段文本(通常不超过 256 个字符)中搜索是否存在大约 20 个不同的单词。如果它在文本中找到一个,无论大小写,它都会返回 true。
该方法将执行相当多的次数(不是疯狂的数量),因此它必须尽可能高效。您认为这里最好的是什么?
这 20 个字没有改变。它们是静态的。但要扫描的文本却可以。
最佳答案
我建议:将输入文本中的所有单词添加到 Set
中 - 毕竟只有 256 个字符,并且添加它们的时间为 O(n)
操作。
之后,您可以使用 Set
的 contains()
操作来测试 20 个左右单词中的每一个单词的成员资格,即 O(1)
.
关于java - 高效的字符串文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969234/