【刷题17】最小栈、栈的压入弹出、逆波兰表达式-二、栈的压入弹出

题目:
在这里插入图片描述

思路:栈

  • 循环,入栈序列全部入栈结束
  • 入栈序列进栈,下标++
  • 循环,栈不为空的情况下,栈顶元素与出栈序列比较,相等,下标++,并且栈pop;否则不进入循环
  • 最后出栈序列的下标等于出栈序列的个数,说明全部匹配,返回true;否则返回false

代码:

 bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
     stack<int> st;
     int i = 0, j = 0;
     
     while(i < pushV.size())
     {
         st.push(pushV[i++]);
             
         while(!st.empty() && st.top() == popV[j])
         {
             st.pop();
             j++;
         }
     }
     if(j == popV.size()) return true;
     else return false;
 }
上一篇:微服务系列六:分布式事务与seata


下一篇:介绍一下hashMap底层的数据结构以及put的时候为什么会有的插入到链表后,有的之后覆盖value