描述
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。
所谓回文串,指左右对称的字符串。
所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串
(注意:记得加上while处理多个测试用例)
输入描述:
输入一个仅包含小写字母的字符串
输出描述:
返回最长回文子串的长度
示例1
输入:
cdabbacc
输出:
4
复制
说明:
abba为最长的回文子串
#include <stdio.h>
#include <string.h>
int judge(char *a, int len)
{
int i;
for(i=0; i<len/2; i++)
{
if(a[i] != a[len-1-i])
{
return 0;
}
}
return 1;
}
int main(void)
{
char a[512] = {0};
int max;
int len;
int i;
while(scanf("%s", a) != EOF)
{
len = strlen(a);
for(max=len; max>0; max--)
{
for(i=0; i<=len-max; i++)
{
if(judge(a+i, max) == 1)
{
goto END;
}
}
}
END:
printf("%d\n", max);
memset(a, 0, sizeof(a));
}
return 0;
}