请问我的代码问题出在哪?一直显示wrong answer

输入一个长度不超过 10000个字符的字符串,请判断字符串是否为回文,若是则输出 YES , 否则输出 NO 。例如,字符串 LEVEL 是回文,而字符串 123312 就不是回文。

输入描述
输入一个长度不超过 10000个字符的字符串。一行一个字符串,可能含有空格。

输出描述
若是回文字符串则输出 YES , 否则输出 NO

样例输入
level
1234567
样例输出
YES
NO

#include<stdio.h>
#include<string.h>
int main()
{
    char str[10000];
    int flag=0,i;
    gets(str);
    int len=strlen(str);
    for(i=0;i<=len/2;i++){
        if(str[i]==str[len-i-1])
        flag=1;
        else{
            flag=0;
            break;
        }
    }
    if(flag==1)
        printf("YES\n");
    else
         printf("NO\n"); 
    return 0;   
}

一行一个字符串,你这只能读取一个字符串