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