这里我用下面的例子子来讲解一下模拟栈的实现。
例子1:pushed = [1,2,3,4,5] popped = [4,5,3,2,1]
思路:第一步:我们先创建一个栈,然后将pushed的数据压进去
第二步:判断! 当压入栈的数据和popped第一个数据一样的时候,我们就出数据。ps:这时可以用一个posi来记录要比较的数据
第三步:最后判断栈是否为空,为空就true,否则则false文章来源:https://www.toymoban.com/news/detail-687946.html
下面是源码:文章来源地址https://www.toymoban.com/news/detail-687946.html
class Solution {
public:
bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
stack<int> st;
int posi = 0;
for(auto pushval : pushed)
{
st.push(pushval);
while(!st.empty() && st.top() == popped[posi])
{
st.pop();
++posi;
}
}
return st.empty();
}
};
到了这里,关于LeetCode——栈的压入、弹出序列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!