对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
输入格式: 输入在一行中给出长度不超过1000的非空字符串。
输出格式: 在一行中输出最长对称子串的长度。
输入样例:
Is PAT&TAP symmetric?
输出样例:
11
#include<stdio.h>
#include<string.h>
int main(){
char a[1001];
gets(a);
int len=strlen(a);
int cnt=1;
int isPrime=1;
for(int r=len-1;r>1;r--){
for(int l=0;l<r;l++){
int m=0,n=0;
cnt=1;
isPrime=1;
for(m=l,n=r;m<n;m++,n--){
if(a[m]==a[n]){
cnt+=2;
}
else{
isPrime=0;
break;
}
}
if(isPrime){
if((m++)!=(n--)){
cnt--;
}
printf("%d",cnt);
break;
}
}
if(isPrime){
break;
}
}
printf("1");
return 0;
}