1040. Longest Symmetric String (25)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue
Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given "Is PAT&TAP symmetric?", the longest symmetric sub-string is "s PAT&TAP s", hence you must output 11.
Input Specification:
Each input file contains one test case which gives a non-empty string of length no more than 1000.
Output Specification:
For each test case, simply print the maximum length in a line.
Sample Input:Is PAT&TAP symmetric?Sample Output:
11
代码:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
int len=s.length(),maxi=1;
for(int i=0;i<len;i++)
{
for(int j=len-1;j>i;j--)
{
if(s[i]==s[j])
{
int t1=i,t2=j;
do
{
t1++;
t2--;
} while(s[t1]==s[t2]&&t1<t2&&t1<j&&t2>i);
if((t1==t2||t1-t2==1)&&j-i+1>maxi)
{
maxi=j-i+1;
}
continue;
}
}
}
printf("%d\n",maxi);
}