对一组有序字符串进行离线索引以进行通配符搜索
我想对大量但有限的字符串集实现通配符搜索功能 这就是我想要的:?代表 1 个字符,* 代表 0 个或多个字符。 我已经知道:
- 使用 trie 或 trie 的变体可以很好地解决问题, 没有*匹配,
- 尽管使用反向特里树确实解决了*问题,通过耦合匹配 两次尝试的结果,但我希望字符串按“字母顺序”排列 有序,交集计算使用的内存可以是 严肃的。
在 http://www.codechef.com/JAN10/problems/L2,但我找不到有人解释他们的代码。
谢谢
I want to implement a wildcard search feature to a large but finite set of strings
here is what I want: ? for 1 char, * for 0 or more chars.
What I've already known:
- use trie, or variants of trie can solve the problem pretty good,
WITHOUT * matching - although use a reversed trie do solve * problem, by coupling match
results of both tries, yet I want the strings to be "alphabetically"
ordered, and memory used by intersection calculating could be
serious.
similar problems have found at http://www.codechef.com/JAN10/problems/L2, but I can't find somebody explains their codes.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这可以使用正则表达式库来实现。看看我已经实现的这个。 C++ 正则表达式库
This could be achieved using regex library. Take a look at this which I have implemented. Regular Expression library in C++