首页 > 技术文章 > 7-2 队列实现回文

gnn40036 2021-09-28 19:44 原文

7-2 队列实现回文 
 

编写一个程序判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列"ABCDEDCBA"就是回文,而字符序列"ABCDEDBAC"就不是回文。空格不计入字符

输入格式:

输入字符串如:"12321"或"1 2 32 1"

输出格式:

若是回文则输出"该字符串是回文字符串",否则输出"该字符串不是回文字符串"。

输入样例:

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

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;
}

 

推荐阅读