两种操作:1)将下一个数加入栈中;2)将当前栈顶元素弹出;二者只能有一个执行
判断当前栈顶元素与下一个要输出的数是否一样:
一样,将栈顶元素弹出;不同,将输入序列中下一个数入栈。
class Solution {
public:
bool isPopOrder(vector<int> pushV,vector<int> popV) {
if(pushV.size() != popV.size()) return false;
int n = pushV.size();
stack<int> st;
int j = 0;
for(int i = 0; i < n; i++)
{
st.push(pushV[i]);
while(!st.empty() && st.top() == popV[j]) st.pop(), j++;
}
return st.empty();
}
};
原文:https://www.cnblogs.com/Trevo/p/12590753.html