c++ - 在字符串列表中进行部分搜索

标签 c++ string algorithm search

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

目前,我只能搜索完整的字符串,最大的灵 active 是我可以搜索出现在字符串中任何位置的部分字符串。当然,最简单的方法是遍历列表中的所有字符串并查找子字符串。这会起作用,但当列表开始增长时可能太慢了。

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

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

最佳答案

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

关于c++ - 在字符串列表中进行部分搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46892663/

相关文章:

python - 第一个元素匹配时如何对嵌套列表进行排序?

C++ 静态函数和线程安全

c++ - 间接运算符的定义质量是什么?

string - 根据语言环境将货币/浮点字符串解析为浮点类型

arrays - 查找字符串中字符之间的长度

java - 如何在java中删除二叉树的根?

C++:将 UDP sockaddr 传输到新位置

c++ - CMake 没有那个文件或目录

android - 检索传递的字符串数组元素 - Android

algorithm - 没有 ILP 的关系数据挖掘