判断出栈顺序,符合返回1,不符合返回0;
#include<iostream>
#include<vector>
#include<stack>
using namespace std;
int main()
{
int CheckStack(vector<int> pushV, vector<int> popV);
vector<int> pushV{ 1, 2, 3, 4, 5 };
vector<int> popV{ 5, 4, 3, 2, 1 };
int ret;
ret = CheckStack(pushV,popV);
cout << ret << endl;
system("pause");
return 0;
}
int CheckStack(vector<int> pushV, vector<int> popV)
{
int pushvindex = 0, popindex = 0;
if (pushV.size() != popV.size())
return 0;
stack<int> st;
while (pushvindex < pushV.size())
{
st.push(pushV[pushvindex++]);
while (!st.empty() && (st.top() == popV[popindex]))
{
st.pop();
popindex++;
}
}
return st.empty();
return 0;
}