1040 the longest symmetric
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1040 the longest symmetric相关的知识,希望对你有一定的参考价值。
以每个字符为中心,分两种情况向两边扩展。
manacher算法参见http://www.cnblogs.com/houkai/p/3371807.html
AC代码:
#include <string> #include <cstdio> #include <iostream> using namespace std; int main(){ string s; getline(cin,s); int maxlen(0); for(int i = 0;i < s.size();i++){ int m(i - 1),n(i + 1); for(;m >= 0 && n < s.size();m--,n++){ if(s[m] != s[n]){ m++; n--; break; } } if(n == s.size() || m < 0){ m++; n--; } if(n - m + 1 > maxlen) maxlen = n - m + 1; m = i; n = i + 1; for(;m >= 0 && n < s.size();m--,n++){ if(s[m] != s[n]){ m++; n--; break; } } if(n == s.size() || m < 0){ m++; n--; } if(n - m + 1 > maxlen) maxlen = n - m + 1; } printf("%d\\n",maxlen); return 0; }
以上是关于1040 the longest symmetric的主要内容,如果未能解决你的问题,请参考以下文章
PAT1040:Longest Symmetric String
1040. Longest Symmetric String (25)
1040. Longest Symmetric String (25)
1040. Longest Symmetric String (25)