2023/09/22

#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
#define MAXSIZE 100
//元素进栈
int push(char* zhan, int top, char elem) {
    zhan[top] = elem;
    top++;
    return top;
}
//元素出栈
int pop(char* zhan, int top) {
    if (top == -1) {
        printf("空栈");
        return -1;
    }

    top--;
    return top;
}
int main()
{
    int num;
    cin >> num;
    string a;
    char zhan[MAXSIZE];
    int top = -1;
    getchar();
    getline(cin,a);
    for (int k = 0; k < num; k++)
    {
        if (a[k] == ' ')
        {
            printf("入栈不成功");
            exit(0);
        }
        top = push(zhan, top, a[k]);
    }
    int count = 0;
    for (int j = 0; j < num; j++)
    {
        top = pop(zhan, top);
        if (a[j] != zhan[top])
        {
            count++;
        }
    }
    if (count == 0)
    {
        printf("此字符串是回文串");
    }
    else
    {
        printf("此字符串不是回文串");
    }
    return 0;
}

 

用栈实现回文串
posted @ 2023-09-22 23:10  伐木工熊大  阅读(11)  评论(0)    收藏  举报