7-1 栈实现回文
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。(不含空格)
输入格式:
先输入字符串的长度,不超过100个字符长度,回车,然后依次输入字符,以回车结束字符串输入。
输出格式:
如果输入字符串中含空格,则输入字符串后回车,显示"入栈不成功",若字符串无空格,回车后,若是回文,则输出"此字符串是回文串",否则输出"此字符串不是回文串"。
输入样例:
在这里给出一组输入。例如:
5
12321
结尾无空行
输出样例:
在这里给出相应的输出。例如:
此字符串是回文串
结尾无空行
代码:
#include <stdio.h> #include <stdlib.h> #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; scanf("%d",&num); char a[MAXSIZE]; char zhan[MAXSIZE]; int top=-1; getchar(); gets(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; }