您的位置:首页 > 其它

字符串最长回文子串

2016-10-25 00:00 344 查看
摘要: 字符串最长回文子串

s[]为加了特殊符号的数组

p[]为用来表示以i为中心的回文子串

pR表示当前最大的回文子串长度,index表示当前最大回文子串的中心

int Manacher(){
int i, pR=0, index;
int max=Integer.MIN_VALUE;

for( i=0; i<n; i++){
p[i] = pR>i ? Min(p[2*index-i], pR-i) :1;

while(i+p[i]<s.length && i-p[i]>-1)
if(s[i+p[i]]==s[i-p[i]])
p[i]++;

if( i+p[i]>pR) {
pR=i+p[i];
index=i;
}
max=Math.max(max, p[i]);
}
return max-1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐