problem D
#include<stdio.h>
#include<stdlib.h>
int main(void){
char a[1000];
int count=0, max[2];
int i, j, k, m, p;
int l;
scanf("%s", a);
l=strlen(a);
max[1]=0;
for(i=0,j=1; i<l-1&&j<l; i++,j++){
if(a[i]==a[j]){
count=1;
for(k=i-1,m=j+1;k>=0&&m<l;k--,m++){
if(a[k]!=a[m]) break;
else count=count+1;
}
if(count>max[1]){
max[0]=i;
max[1]=count;
}
}
}
for(p=max[0]-max[1]+1;p<max[1];p++) printf("%c", a[p]);
system("PAUSE");
return 0;
}
需debug之處:
若有出現更大的迴文,無法覆蓋max[1]值,無法print