2.4 Manacher‘s ALGORITHM(马拉车算法): O(n)复杂度求字符串的最长回文子串
/*算法功能:奇数串最长回文串长度-Manacher算法(马拉车算法)
思路:1.转换原始串字符个数为奇数个(2n+1个):int INIT(char *st)
2.计算所有字符的回文半径(mx-前面计算回文串最右位置,po-最右位置对应中心下标);
3.最长回文长度=max(回文半径)-1
调用:scanf("%s",str); int len = INIT(str);
printf("%d\n",MANACHER(tmp,len));
@param:char *st-转换后字符数组,le...
原创
2020-08-19 14:56:36 ·
140 阅读 ·
0 评论