部分搜索字符串列表

时间:2017-10-23 15:05:25

标签: c++ string algorithm search

我有一组键用作在我的应用程序中快速搜索的索引。

目前,我只能搜索完整的字符串,如果我能搜索出现在字符串中任何位置的部分字符串,那么最大的灵活性就是。当然,执行此操作的天真方法是迭代列表中的所有字符串并查找子字符串。这可行,但在列表开始增长时可能太慢了。

我读了一些关于基数树的内容,但这只允许我从字符串的开头部分进行部分匹配,也可以从字符串的末尾进行部分匹配。

我的问题是我应该考虑哪些算法来解决部分匹配问题(不是在一个大文档中),而是在字符串列表中。如果我保留一个排序的字符串列表,这个问题会更容易吗?我可以看到,如果字符串长度相同,这将更容易,但对于可变长度的字符串,我无法提出合理的方法。

2 个答案:

答案 0 :(得分:1)

如果您保留了一个包含所有字符串但又带有特定分隔符的大字符串,该怎么办?从索引中找到您的部分子字符串的索引,然后在您的分隔符上拆分。您现在拥有该字符串的索引。泡沫,冲洗,重复其余的字符串(或使用正则表达式找到所有匹配)

答案 1 :(得分:0)

当您想要快速执行部分字符串匹配时,后缀树和后缀数组非常有用。