转载请注明出处,谢谢。
先上题目
题目说了一大堆,其实意思就是给定一个入栈序列,再给一个序列判断是否可能是出栈序列。
解题思路书上没说,只给了代码,我这里说下,具体见下面代码。
<span style="font-size:18px;">#include<stdio.h>
#include<stack>
int main()
{
int i,j,n,a[100];
std::stack<int> s;
while(scanf("%d",&n) == 1)
{
while(!s.empty())//防止上次栈里元素未清空,对下次结果产生影响
{
s.pop();
}
j = 1;
i = 0;
for(int k = 0;k < n;k++)//输入目标序列
{
scanf("%d",&a[k]);
}
while(i < n)
{
if(j == a[i]