真假小妖 | ||||||
| ||||||
Description | ||||||
风和日丽的一天,涂山小八正在悠哉的晒着太阳。突然,一群小妖涌了进来,一问才知道又是东方平平捉弄她,使了个法术造了一群涂山小妖的盗版。现在分不清真小妖和假小妖了。 小八微微一笑,开始有条有理的组织起来鉴别真假。原来涂山小妖都有一个ID数字,这些ID数字都是特别的回文数字。平平不知道此事,造的假小妖的ID数字都不是回文数字。 看在小八都这么机智的份上,帮帮她吧? | ||||||
Input | ||||||
输入数据有多组,每组占一行,输入一个整数n(1≤n≤109),表示小妖的ID数字。 | ||||||
Output | ||||||
对于每组数据,如果这个小妖是真小妖的话,输出“yes”,否则输出“no”(输出不包括引号),每组输出占一行。 | ||||||
Sample Input | ||||||
12345 12321 2 | ||||||
Sample Output | ||||||
no yes yes |
考点:栈
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[101],s[101];
int i,len,mid,next,top;
while(gets(a)){
len=strlen(a);
mid=len/2-1;
top=0; //栈的初始化
for(i=0; i<=mid; i++) //将 mid 前的字符依次入栈
s[++top]=a[i];
if(len%2==0)
next=mid+1;
else
next=mid+2;
for(i=next; i<=len-1; i++){ //开始匹配
if(a[i]!=s[top])
break;
top--;
}
if(top==0) //说明栈内所有的字符都被一一匹配了
printf("yes\n");
else
printf("no\n");
}
return 0;
}