![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 88
RichardZJU
我的程序员修炼之路
展开
-
KMP算法——Knuth–Morris–Pratt algorithm
在网上找KMP算法,阅读了不少文章,结果发现大都晦涩难懂,本文最后提到的参考文章是我看到写的最清晰的一篇,但是到next数组求解时又开始晦涩了(而这恰恰是KMP算法的核心)。简单介绍一下next数组:next数组长度为“模式串长度+1”,每个位置的值为模式串到该位置为止的最长相同前后缀长度(模式串从1开始标号),以模式串“ABCABCAD”为例,它的next数组如下:原创 2016-03-22 14:15:09 · 2078 阅读 · 0 评论 -
O(N)最长回文子串算法——Manacher算法
题目举例:http://hihocoder.com/problemset/problem/1032?sid=763559题意:在一串连续的字符串中寻找它的最长子串(Longest Palindromic Substring)输入:先从标准输入读取一个整数N(N,代表我给你的字符串的个数,然后接下来的就是我要给你的那N个字符串(字符串长度输出:最长回文子串长度 题目分析:很自然地原创 2016-04-09 20:33:43 · 745 阅读 · 0 评论 -
最长回文子序列问题
该问题区别于最长回文子串问题,子串必须是连续的,而子序列则可以跳跃,例如AABCAA的最长回文子串为AA,但是它的最长回文子序列为AABAA和AACAA.下面给出两种解法,递归版和动态规划版(一般能用递归做的都可以用动态规划)1. 递归版递推公式:1) 如果S的最后一个元素和第一个元素是相同的,这时:LPS(0, n-1) = LPS(1, n-2) + 2 , 以AABC原创 2016-04-13 11:22:24 · 950 阅读 · 0 评论