又见回文

题目描述

    “回文串”是一个正读和反读都一样的字符串,比如“level或者“noon等等就是回文串。现在呢,就是让你判断输入的字符串是否是回文串。

输入

    有多组输入,每行输入一串字符,保证字符串长度不会大于 100000,字符串由大小写英文字母和空格组成,以字符串“2013作为结束标志。

输出

    每行输出一个字符串,如果输入是回文串,输出“YES,否则输出“NO(注意:判断的时候空格是不作判断的,详见样例)。

示例输入

aaaa

ggg g

lozxvxoMJBCHsTXooXTsHCBJMoxvxzol

i am a good acmer

2013

示例输出

YES

YES

YES

NO

#include<stdio.h>
#include<string.h>
int main()
{
char pp[5]="2013";
char a[100005];
int q,w,e;
while(gets(a)!=NULL)
{
if(strcmp(a,pp)==0)
break;
e=0;
w=strlen(a);
int y=w;
for(q=0;q<=w;)
{
if(a[q]==' ')
while(a[q]==' '&&q<w)
q++;
if(a[w-1]==' ')
while(a[w-1]==' '&&q<w)
w--;
if(a[q]==a[w-1])
{
q++;
w--;
}
else
{
e=1;
break;
}
}
if(e==0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}

你可能感兴趣的:(回文)