http://acm.zju.edu.cn/show_problem.php?pid=2744
我的运行超时:
我的答案:
#include<stdio.h>
main()
{
char a[5001];
int i=0,j=0,n=0,k=0,o=0;
while( scanf("%s",a)!=EOF)
{
while(a[n]!='\0')
{ j=n;
while( a[j]!='\0')
{
for (i=n;i<=j;i++)
if (a[i]!=a[j-i+n] ){ k=1; }
if(k==0) {o++; printf("%d %d\n",n,j); }
j++;
k=0;
}
n++;
}
printf("%d",o);
o=0;
n=0;
}
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<string.h>
void main()
{
char s[50001],a[50001];
int i,k,sum,l;
while(scanf("%s",s)!=EOF)
{
sum=strlen(s);
for(i=0,a[0]=s[0];s[i+1];i++)
{
if(s[i]==s[i+1])
{
for(k=i,l=i+1;k>=0&&s[l];k--,l++)
{
if(s[k]==s[l])sum++;
else break;
}
}
for(k=i-1,l=i+1;k>=0&&s[l];k--,l++)
{
if(s[k]==s[l])sum++;
else break;
}
}
printf("%d\n",sum);
}
}
----------------解决方案--------------------------------------------------------