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; }
用栈实现回文串