1089 最长回文子串 V2(Manacher算法)
Time Limit: 1000 MS Memory Limit: 131,072.0 KB
题目描述
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。
输入一个字符串Str,输出Str里最长回文子串的长度。
输入
输入Str(Str的长度 <= 100000)
输出
输出最长回文子串的长度L。
输入样例
daabaac
输出样例
5
代码
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 1e5 + 10;
char s[N], ma[N << 1];
int p[N << 1];
void manacher(char *s, int len){
int l = 0;
ma[l ++] = '$';
ma[l ++]