首页 > 其他 > 详细

manacher

时间:2015-08-18 01:12:11      阅读:105      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!