在我的应用程序中,我有数百万个短字符串(大多数短于32个字符).我想实现一个带有附加列表的搜索框,该列表仅包含包含在搜索框中输入的整个字符串的元素.我怎样才能预建一个索引来快速找到这样的字符串?所有已排序的STL容器都会检查整个字符串.
对于输入的搜索字符串"str",我需要找到所有包含"str"的字符串:"main street","struve","ustr"等.
您可以构建Permuterm索引.
对于"struve",您将插入到Radix树(或通用搜索树)中:
struve$
truve$s
ruve$st
uve$str
ve$stru
e$struv
$struve
Run Code Online (Sandbox Code Playgroud)
要搜索中缀,您将从根节点搜索匹配的前缀字符串.