剑指Offer_编程题_22
生活随笔
收集整理的這篇文章主要介紹了
剑指Offer_编程题_22
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。(注意:這兩個序列的長度是相等的) class Solution { public:bool IsPopOrder(vector<int> pushV,vector<int> popV) {bool flag = true;stack<int>st;int size_push = pushV.size();int size_pop = popV.size();int j=0,i=0;while(i < size_push){if(pushV[i] == popV[j]){i++;j++;}else if(!st.empty() && st.top() == popV[j]){st.pop();j++;}else {st.push(pushV[i]);i++;}}while(!st.empty()){if(st.top() == popV[j]){st.pop();j++;}else{break;}}if(!st.empty()){flag = false;}return flag;} };
轉載于:https://www.cnblogs.com/grglym/p/8986186.html
總結
以上是生活随笔為你收集整理的剑指Offer_编程题_22的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python初始环境搭建和Pycharm
- 下一篇: 网页报错有哪些错误