分两种情况算回文串,一种是cbabc类型,一种是cbaabc类型,每种情况遍历一次串的每个字符,然后向两边扩展判断是否回文串,最直接的算法也最慢
#include<stdio.h>
#include<string.h>
int main()
{
char s[5001];
while (scanf("%s", s) != EOF)
{
int i, total = 0, len = strlen(s);
for (i = 0; i < len; i++)
{
total++;
int j = i - 1, k = i + 1;
while (j >= 0 && k < len && s[j--] == s[k++])
total++;
}
for (i = 1; i < len; i++)
{
int j = i - 1, k = i;
while (j >= 0 && k < len && s[j--] == s[k++])
total++;
}
printf("%d\n", total);
}
return 0;
}