//最长回文子串 #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #define MAX 5005 char buf[MAX],s[MAX]; int p[MAX]; int main() { while(gets(buf)) { int n,m=0,max1=0; int i,j,x,y; // fgets(buf,sizeof(s),stdin); n=strlen(buf); for(i=0;i<n;i++) if(isalpha(buf[i])) //判断是否为字符 { p[m]=i; s[m++]=toupper(buf[i]); //返回大写字母 } for(i=0;i<m;i++) { for(j=0;i-j>=0&&i+j<m;j++) { if(s[i-j]!=s[i+j]) break; if(j*2+1>max1) {max1=j*2+1;x=p[i-j];y=p[i+j];} } for(j=0;i-j>=0&&i+j<m;j++) { if(s[i-j]!=s[i+j+1]) break; if(j*2+2>max1) {max1=j*2+2;x=p[i-j];y=p[i+j+1];} } } for(i=x;i<=y;i++) printf("%c",buf[i]); printf(" "); } return 0; }