18.8 Given a string s and an array of smaller strings T, design a method to search s for each small string in T.

这道题给我们一个字符串s,和一个字符串数组T,让我们找T中的每一个小字符串在s中出现的位置,这道题很适合用后缀树Suffix Tree来做,LeetCode中有几道关于前缀树(Prefix Tree, Trie)的题,Implement Trie (Prefix Tree)Word Search II,和 Add and Search Word - Data structure design 。前缀树和后缀树比较相似,都是很重要的数据结构,在解决特定问题时非常有效,具体讲解请参见这个帖子。参见代码如下:

class SuffixTreeNode {
public:
unordered_map<char, SuffixTreeNode*> children;
char value;
vector<int> indexes; void insertString(string s, int idx) {
indexes.push_back(idx);
if (!s.empty()) {
value = s[];
SuffixTreeNode *child;
if (children.count(value)) {
child = children[value];
} else {
child = new SuffixTreeNode();
children[value] = child;
}
string remainder = s.substr();
child->insertString(remainder, idx);
}
} vector<int> search(string s) {
if (s.empty()) return indexes;
char first = s[];
if (children.count(first)) {
string remainder = s.substr();
return children[first]->search(remainder);
}
return {};
}
}; class SuffixTree {
public:
SuffixTreeNode *root = new SuffixTreeNode(); SuffixTree(string s) {
for (int i = ; i < s.size(); ++i) {
string suffix = s.substr(i);
root->insertString(suffix, i);
}
} vector<int> search(string s) {
return root->search(s);
}
};

类似题目:

Implement Trie (Prefix Tree)

Word Search II

Add and Search Word - Data structure design

参考资料:

http://blog.csdn.net/v_july_v/article/details/6897097

CareerCup All in One 题目汇总

最新文章

  1. iOS8: Ignore manifest download, already have bundleID
  2. paip.2013年技术趋势以及热点 v2.0 cae
  3. QQ空间HD(1)-UIPopoverController基本使用
  4. CSS第四天总结 更多的属性 圆角 边框图片 段落属性 颜色渐变 盒子阴影
  5. java 下载 断点续传
  6. POJ 2524 Ubiquitous Religions
  7. db2 常用命令(一)
  8. 磁盘检验[转自vbird]
  9. CODE:BLOCK中的CreateProcess: No such file or directory
  10. PAT-乙级-1019. 数字黑洞 (20)
  11. java 知识结构
  12. 【BZOJ4327】JSOI2012 玄武密码 AC自动机
  13. 优先队列(和fence repair完全一样)
  14. 解决弹出蒙层滑动穿透问题-vue
  15. Js修改input值后怎么同步修改绑定的v-model值
  16. form表单的三个属性 action 、mothod 、 enctype。
  17. socket实现文件传输
  18. VUE项目小试牛刀
  19. SharePoint &ldquo;File not found&rdquo; 错误
  20. 20135316王剑桥Linux内核学习笔记

热门文章

  1. 硬盘格式是MBR、GPT
  2. HTML Entity Sets - All
  3. Javascript 学习之路:鼠标长按事件
  4. Java优化之输出十万以内的质数
  5. 一定要学会paxos算法!
  6. JSON.parse()和JSON.stringify()使用
  7. PHP如何实现文件上传
  8. 使用dSYM分析App崩溃日志
  9. TFS安装与管理
  10. jQuery Dialog and timepicker显示层的问题