我正在处理文本文件。我想在Java中实现一个搜索算法。我有一些需要搜索的文本文件。
如果我只想查找一个单词,我可以将所有文本放入哈希表中,并存储每个单词的出现次数。但是,如果我想搜索两个字符串(或更多),是否有任何算法可用?我应该将这些字符串成对哈希吗?
在提出建议之前,需要更多细节:
您是只搜索完整的单词还是任意子字符串?
您是否要在同一个未更改的文件中搜索许多不同的单词?
您是否已经知道要同时搜索哪些单词?
有许多高效(线性)的字符串搜索算法。如果可能,建议使用已经为您编写的算法。
一个简单的想法是使用滑动窗口哈希,窗口大小与搜索字符串相同。然后在单次遍历中,您可以快速检查窗口哈希是否与搜索字符串的哈希匹配。如果匹配,则再次检查以确定是否有真正的匹配。