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 <stdio.h>
#include <string.h>
#define MAX 1003
char str[MAX];
int main()
{
gets(str);
int length = strlen(str);
int cnt1=0;
int cnt2=0;
int i,j;
int tmp;
for(i=0;i<length;i++){
for(j=0;i-j>=0&&j+i<length;j++){
if(str[i-j] != str[i+j])
break;
else{
tmp =2*j+1;
if(cnt1 < tmp)
cnt1 = tmp;
}
}
for(j=0;i-j>=0&&i+1+j<length;j++){
if(str[i-j] != str[i+j+1])
break;
else{
tmp = 2*j+2;
if(cnt2 <tmp)
cnt2 = tmp;
}
}
}
if(cnt1 <cnt2)
cnt1 =cnt2;
printf("%d\n",cnt1);
return 0;
}