- #include <stdio.h>
- #include <string>
- #include <string.h>
- #include <ctype.h>
- #define MAXN 5000+10
- char buf[MAXN],s[MAXN];//buf为输入的字符串,s为忽略标点的字符串
- int p[MAXN];//p数组记录新数组在原数组中的坐标
- int main(void)
- {
- int n,m,max,x,y;
- int i,j,t;
- scanf("%d",&t);
- while(t--)
- {
- m=max=0;
- fgets(buf,sizeof(s),stdin);//==string->getline();
- printf("abcdefgn");
- n=strlen(buf);
- for(i=0;i<n;i++)
- if(isalpha(buf[i]))//处理字符串 isalpha()―测试字符是否为英文字母
- {
- 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>max) {max=j*2+1;x=p[i-j];y=p[i+j];}
- }
- for(j=0;i-j>=0&&i+j+1<m;j++)
- {
- if(s[i-j]!=s[i+j+1]) break;
- if(j*2+2>max) {max=j*2+2;x=p[i-j];y=p[i+j+1];}
- }
- }
- for(i=x;i<=y;i++)
- printf("%c",buf[i]);
- printf("n");
- }
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/1507201410009.html
来源: http://www.codesnippet.cn/detail/1507201410009.html