棧實驗之迴文串判定
題目描述
輸入一串字元(長度小於100),判斷該串字元是否是迴文串(正序讀與逆序讀內容相同)。
輸入
輸入一串字元(長度小於100)。
輸出
若該串字元是迴文串輸出“yes",否則輸出”no“。
示例輸入
asdfgfdsa
示例輸出
yes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxsize 100
#define sizenum 100
typedef char element;
typedef struct
{
element *top;
element *base;
int stsize;
}sq;
int intistack(sq*s)
{
s->base=(element*)malloc(maxsize*sizeof(element));
if(!s->base)
return -1;
s->top=s->base;
s->stsize=maxsize;
return 0;
}
int push(sq*s,char t)
{
if(s->top-s->base>s->stsize)
{
s->base=(element*)realloc(s->base,(s->stsize+sizenum)*sizeof(element));
if(!s->base)
return -1;
s->top=s->base+s->stsize;
s->stsize+=sizenum;
}
*(++s->top)=t;
return 0;
}
int main()
{
int i,len;
char a[maxsize];
sq s;
gets(a);
intistack(&s);
len=strlen(a);
for(i=0;i<=len-1;i++)
{
push(&s,a[i]);
}
int flag=0;
for(i=0;i<=len-1;i++)
{
if(a[i]!=*(s.top--))
{
flag=1;
break;
}
}
if(flag==1)
printf("no\n");
else printf("yes\n");
return 0;
}