Manacher
求最长回文子串
ACM模板
C++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 100000 + 10;
char Ma[MAXN << 1];
int Mp[MAXN << 1];
void Manacher(char s[], int len)
{
int l = 0;
Ma[l ++] = '$';
Ma[l ++] = '#';
for(int i = 0; i < len; i ++)
{
Ma[l ++] = s[i];
Ma[l ++] = '#';
}
Ma[l] = 0;
int mx = 0, id = 0;
for(int i = 1; i < l; i

本文介绍了Manacher算法,一种用于高效求解字符串中最长回文子串的方法,并提供了该算法在ACM竞赛中的应用模板。同时,给出了C++和Java两种语言的实现代码。
最低0.47元/天 解锁文章
285

被折叠的 条评论
为什么被折叠?



