题目:判断一个栈(字符串)是不是回文。
可以将字符串依次压入栈中,然后在依次pop( ),得到原来字符串的逆置串,再将其与原来字符串依次比较,若始终相同,则说明栈是回文。
代码如下:
//判断一个栈是不是回文
#include "stdafx.h"
#include<iostream>
#include<stack>
using namespace std;
bool Judge_stack(char text[]) {
int length = strlen(text);
stack<char> s;
for (int i = 0; i < length; ++i)
{
s.push(text[i]);
}
int i = 0;
bool arr[] = {0};//把判断结果存在了布尔数组中,若全为0,则返回true
while (!s.empty())
{
arr[i]=(s.top() == text[i]);
s.pop();
i++;
}
for (int j = 0; j < length; j++)
{
if (arr[j] == 0)return false;
}
return true;
}
int main()
{
char a[] = "aabcba";
cout << "The result is:" << Judge_stack(a) << endl;
return 0;
}