- 博客(3)
- 收藏
- 关注
原创 后缀数组的应用
想要了解后缀数组,可以在网上搜索罗同学的论文,这里的代码更容易理解些。构造后缀数组并求这些数组的最长公共前缀是基本操作,就用途来说没有意义,一般都是利用这个结果进行其它操作,它在很多OJ题或面试题里的字符串操作中会用到,下面是一些例子:1. 求一个字符串所有不同的子串个数(子串意味着是连续的)。比如“abaaba”,它的字串包括:a, b, aa, ab, ba, aba, baa, aab
2016-01-18 12:32:59 701
原创 manacher算法求最长回文子串(Longest Palindromic Substring)
经典的快速求最长回文子串的算法是manacher算法(俗称“马拉车”),时间复杂度o(n),感觉能在o(n)时间内解决问题的算法都是神啊。不过这个算法用处比较单一,思想也不具有普遍性。回文这个东西,本来用的就不多,看看理解一下就好。推两篇博文:博文一,博文二。一是英文,二是中文,看完之后就应该能理解的差不多了,其中博文二在博文一的参考文献里,外国人居然也看中文博客,惊奇!下面自己对一些比较
2016-01-14 12:17:25 421
原创 倍增算法的另一种解法
网上一搜索倍增算法,基本就是罗穗骞同学的介绍。这同学高中时期就研究这么深入,让我这研究生毕业的人汗颜,慢慢爬坑吧。不过说实在的,这代码写的实在看着有点费劲。网上又有人整理了下。不过我看的还是一头雾水,希望有明白人能说明一下。要想了解倍增算法,最好先对RMQ和基数排序算法有一定了解,还要了解一下后缀数组。下面把代码贴过来。例子图如下:但是代码的实现和这个图出入很大,不好理解。
2016-01-08 15:28:40 4208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人