SDUT1524回文串判定(栈)

来源:互联网 发布:网络汽车出租管理办法 编辑:程序博客网 时间:2024/06/07 00:06


回文串判定

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

输入一串字符(长度小于100),判断该串字符是否是回文串(正序读与逆序读内容相同)。

输入

输入一串字符(长度小于100)。

输出

若该串字符是回文串输出“yes",否则输出”no“。

示例输入

asdfgfdsa

示例输出

yes


 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXsize 110 char str[101]; typedef char ElemType; typedef struct {     ElemType *base;     ElemType *top;     int length;     int stacksize; }SQ; int InitStack(SQ &S) {     S.base=(ElemType *)malloc(MAXsize*sizeof(ElemType));     if(!S.base) exit(-1);     S.top=S.base;     S.length=MAXsize;     S.stacksize=MAXsize; } int Push(SQ &S,ElemType e) {     *S.top++=e;     return 1; } int Pop(SQ &S,ElemType &e) {     if(S.base==S.top) return 0;     e=*--S.top;     return 1; } int IsEmpty(SQ &S) {     if(S.base==S.top) return 1;     return 0; } int main() {     while(~scanf("%s",str))     {         int len,flag=0,m;         ElemType e;         len=strlen(str);         SQ S;         InitStack(S);         if(len%2==0) m=len/2-1;         else m=len/2;         for(int i=0;i<=m;i++)         {             Push(S,str[i]);         }         for(int j=len/2;j<=len-1;j++)         {             Pop(S,e);             if(e!=str[j])             {                 flag=0;                 break;             }             else flag=1;         }         if(IsEmpty(S)&&flag==1)            printf("yes\n");         else            printf("no\n");     } }


0 0
原创粉丝点击