2-8 回文判断 (20 分)

回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。

输入格式:

输入待判断的字符序列,按回车键结束,字符序列长度<20。

输出格式:

若字符序列是回文,输出“YES”;否则,输出“NO”。

输入样例:

abdba

输出样例:

YES

#include <stdio.h>
#include <stdlib.h>
typedef struct Stack
{
    int top;
    char str[100];
}STACK;
int main()
{
    int len,i,mid,next;
    char str[100];
    STACK 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;
}

猜你喜欢

转载自blog.csdn.net/qq_41840843/article/details/84718342
今日推荐