最长回文子串以前一直是用后缀数组求的,今天看到一篇好文章写求O(n)求最长回文串的做法,所以呢就做个笔记
http://acm.uestc.edu.cn/bbs/read.php?tid=3258 电子科大BBS
回文串包括奇数长的和偶数长的,一般求的时候都要分情况讨论,这个算法做了个简单的处理把奇偶情况统一了。算法的基本思路是这样的,把原串每个字符中间用一个串中没出现过的字符分隔开来(统一奇偶),用一个数组p[ i ]记录以 str[ i ] 为中间字符的回文串向右能匹配的长度。先看个例子
原串:w a a b w s w f

本文介绍了如何使用Manacher算法在O(n)时间内找到字符串的最长回文子串,通过处理奇偶长度回文串的统一,以及利用回文串的性质构建p数组,实现高效求解。算法复杂度为O(n),详细解释和原理解析见链接。
最低0.47元/天 解锁文章
2020

被折叠的 条评论
为什么被折叠?



