题目内容
识别依次读入的字符串序列是否符合这个对称模式:x1x2x3…xn & xn…x2x1 。其中x1x2…xn都是字符,不含 & 和 #,#为结束标志。例如:字符串 1234&4321# 符合该模式。
字符串 1234&4231# 不符合该模式。
字符串 1234&432# 不 符合该模式。
思路:
把元素以此入栈,遇到“&”后,一边输入一边出栈。
出栈的条件是:输入的字符和出栈的字符相同
C++代码实现:
#include <iostream>
#include <cstdlib>
using namespace std;
/*栈的存储结构*/
const int StackInitSize = 300;
const int StackInc = 30;
struct My_Stack
{
char *base,*top;
int stacksize;
};
/*栈的初始化*/
bool StackInit(My_Stack &M)
{
M.base = new char[StackInitSize];
if(!M.base)
return false;
M<