摘要: 后缀树Suffix-Tree的应用前言关于字符串的处理,如最长公共子串、回文问题等,用后缀树可以很好的解决,下面对其应用做一个简单的介绍。什么是后缀树后缀树(Suffix tree)是一种树形数据结构,能快速解决很多关于字符串的问题。后缀樹的概念最早由Weiner 於1973年提出,既而由McCreight 在1976年和Ukkonen在1992年和1995年加以改進完善。总结起来,它主要可以解决类似如下的一些问题:查找字符串o是否在字符串S中指定字符串T在字符串S中的重复次数字符串S中的最长重复子串两个字符串S1,S2的最长公共部分这些问题如何解决,我们最后再谈。结构定义假设我们现在有一个字 阅读全文
posted @ 2013-04-05 15:39 legendmaner 阅读(3221) 评论(0) 推荐(0) 编辑
摘要: 某同学的同学摩根电面的一道题目:有一个大的textfile,里面很多英文单词,查找重复出现的单词;题目的简单:全部遍历太慢,考官说太慢,为什么不使用stl的map实现呢?如果不是单词呢?如果是url呢?为什么不使用hash_map呢?Good!如果还是单词,能不能再快点呢?能,使用强大的Trie吧!使用stl的map实现:#pragma warning(disable : 4786)#include <iostream>#include <string>#include <map>using namespace std;int main(){ map< 阅读全文
posted @ 2013-04-05 13:42 legendmaner 阅读(407) 评论(0) 推荐(0) 编辑