用栈的思想来判断一个字符串是否是回文数,如果是输出“yes”,,否则输出“no”。
这里其实就是,先将字符串的一半入栈,并计算它的长度(字符串一半的长度),然后将这两部分为字符串逐一比较
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
typedef struct Stack
{
int top;
char str[100];
}Sqstack;
int main()
{
int len,i,mid,next;
char str[100];
Sqstack s;
s.top=0;
gets(str);
len=strlen(str);
mid=len/2;
for(i=0;i<mid;i++)
{
s.str[s.top]=str[i];
s.top++;
}
if(len%2!=0)
next=mid+1;
else
next=mid;
while(s.top!=0)
{
if(s.str[s.top-1]==str[next])
{
s.top--;
next++;
}
else break;
}
if(s.top==0) printf("yes\n");
else printf("no\n");
return 0;
}