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

manacher

时间:2015-08-18 01:15:05      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

 1 void manacher(){
 2     int res = 0, id = 0;
 3     for(int i = 1; i <= m; i++) {
 4         if(res > i){
 5             p[i] = min(p[2 * id - i], res - i);
 6         }
 7         else{
 8             p[i] = 1;
 9         }
10         //p[i] = mx > i? min(mp[2*id-i], mx-i): 1;
11         while(s[i + p[i]] == s[i - p[i]]){
12             p[i]++;
13         }
14         //while(s[i+mp[i]] == s[i-mp[i]]) mp[i]++;
15         if(i + p[i] > res) {
16             res = i + p[i];
17             id = i;
18         }
19     }
20 }

 

manacher

标签:

原文地址:http://www.cnblogs.com/macinchang/p/4738189.html

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