码迷,mamicode.com
首页 > 其他好文 > 详细

(字符串) Manacher 最长回文子串。

时间:2015-03-01 17:04:01      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

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

  技术分享

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

(字符串) Manacher 最长回文子串。

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!