栈实现回文

输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。(不含空格)

输入格式:

先输入字符串的长度,不超过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;
}
复制代码

 

 
posted @   zrswheart  阅读(478)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示