hiho 第1周 最长回文子串(manacher)
Posted ehanla
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hiho 第1周 最长回文子串(manacher)相关的知识,希望对你有一定的参考价值。
裸题。原理看代码很好理解的。
1 //hiho 第1周 2 #include <set> 3 #include <map> 4 #include <queue> 5 #include <deque> 6 #include <stack> 7 #include <cmath> 8 #include <cstdio> 9 #include <vector> 10 #include <string> 11 #include <cstring> 12 #include <fstream> 13 #include <iostream> 14 #include <algorithm> 15 using namespace std; 16 17 #define eps 1e-8 18 #define PI acos(-1.0) 19 #define INF 0x3f3f3f3f 20 #define FAST_IO ios::sync_with_stdio(false) 21 22 typedef long long LL; 23 const int N=1e6+10; 24 char str[N]; 25 26 int solve(){ 27 int ans=1; 28 for(int i=1;str[i];i++){ 29 int s=i,e=i; 30 while(str[e+1]==str[i]) e++; 31 i=e; 32 while(str[s-1]==str[e+1]) s--,e++; 33 if((e-s+1)>ans) ans=e-s+1; 34 } 35 return ans; 36 } 37 38 int main(){ 39 str[0]=‘$‘; 40 int n; 41 scanf("%d",&n); 42 while(n--){ 43 scanf("%s",str+1); 44 printf("%d ",solve()); 45 } 46 return 0; 47 }
以上是关于hiho 第1周 最长回文子串(manacher)的主要内容,如果未能解决你的问题,请参考以下文章
51 Nod 1089 最长回文子串(Manacher算法)