首页 > 技术文章 > 7-1 栈实现回文

gnn40036 2021-09-27 00:41 原文

7-1 栈实现回文 

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

输入格式:

先输入字符串的长度,不超过100个字符长度,回车,然后依次输入字符,以回车结束字符串输入。

输出格式:

如果输入字符串中含空格,则输入字符串后回车,显示"入栈不成功",若字符串无空格,回车后,若是回文,则输出"此字符串是回文串",否则输出"此字符串不是回文串"。

输入样例:

在这里给出一组输入。例如:

5
12321
 
结尾无空行

输出样例:

在这里给出相应的输出。例如:

此字符串是回文串


源代码

#include <stdio.h>
#include <queue>
#include <cstring>
#define MAXSIZE 100
using namespace std;

int main()
{
queue <char>q;
char a[MAXSIZE];
scanf("%s",&a);
int t=strlen(a);
int sum;
//入队
for(int k=0;k<t;k++)
{
if(a[k]!=' ')
{
q.push(a[k]);
sum++;
}

}
//出队
int count=0;
for(int j=t-1;j>=0;j--)
{
if(a[j]!=' ')
{
char temp=q.front();
if(a[j]!=temp)
{
count++;
}
q.pop();
}

}
if(count==0)
{
printf("该字符串是回文字符串");
}
else
{
printf("该字符串不是回文字符串");
}
return 0;
}

 

推荐阅读