队列实现回文

编写一个程序判断一个字符串是否是回文。回文是指一个字符序列以中间字符为基准两边字符完全相同,如字符序列"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;
}

 

posted @ 2021-09-28 21:05  zrswheart  阅读(182)  评论(0编辑  收藏  举报