Manacher 最长回文子串。

  最长回文子串就是一个字符串的一个子串,他从左往右读和从右往左读是一样的。

  可以用 Manacher 算法来求,他的复杂度是 O(n) 。

  可以看这篇文章 http://blog.csdn.net/ywhorizen/article/details/6629268

  但是其中应该有一个错误(纠结了我一天。。。)

  就是 这一句,文章里面是说当 Mx-i <= Mp[j] 的时候就要用到,因为后面的还没比较。

  

  但是如图,蓝色的部分是相等的,如果红色的等于蓝色的话,那么Mx就不可能是这个值,所以红色的一定不等于蓝色的,所以说只有当 Mx-i == Mp[j] 或者是 Mx<=i 是才会用到。

原文地址:https://www.cnblogs.com/whywhy/p/4307246.html