回文字符串的一个问题
题目在此:描述王老板特别喜欢研究对称这种性质。这不有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如level就是一个回文字符串。
输入
一串字符串,长度小于50。
输出
如果该字符串是回文字符串,则输出回文字符串中回文序列的长度;如果该字符串不是回文字符串,则输出−1;
如果回文字符串长度为奇数,则最后回文序列的长度需要加上正中间字符的长度(如level输出3)。
样例输入1 复制
level
样例输出1
3
样例输入2 复制
life
样例输出2
-1
#include<stdio.h>
#include<string.h>
int main()
{
char a[50];
int i;
for(i=0;i<strlen(a);i++)
{
scanf("%c",&a[i]);
}
for(i=0;i<strlen(a);i++)
{
if(a[i]!=a[strlen(a)-i-1])
{
break;
}
if(i==strlen(a)+1)
{
if(strlen(a)%2==0)
{
printf("%d",strlen(a)/2);return 0;
}
else {
printf("%d",(strlen(a)+1)/2);return 0;}
}
}
printf("-1");
}
我输入level 输出是-1
请问哪里错了?