1. 程式人生 > >棧實驗之迴文串判定

棧實驗之迴文串判定

題目描述

輸入一串字元(長度小於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;
}