最长回文字符串 manacher算法
回文串O(n)算法。
为啥是O(n)的呢?
原因是我们在比较的过程中,可以根据之前比较过的来推算当前可能的回文长度。
为什么在(maxx(最大回文子串的边界)-i)和p[2*id - i] (id是最大回文子串中心的位置, p数组存当前最长回文长度)中取一个最小值?
2*id-i是i对于id的对称点,如果maxx-i>p[2*id-i] 说明以id为中心的回文串覆盖了以i, j为中心的最长
原创
2017-08-30 19:46:13 ·
263 阅读 ·
0 评论