题目描述
1 class Solution { 2 public: 3 bool IsPopOrder(vector<int> pushV,vector<int> popV) { 4 stack<int> st; //辅助栈 5 int len = pushV.size(); //序列长度 6 int index = 0; //序列的索引 7 for (int i = 0; i < len; i++) { 8 st.push(pushV[i]); //每次压入一个数字 9 while (!st.empty() && popV[index] == st.top()) { //重复判断栈顶元素是否和索引对应的数字相同,如果相同, 10 //索引后移,栈弹出。 11 st.pop(); 12 index++; 13 } 14 } 15 if (index == len) //如果索引值到达序列长度,说明是对应的一个弹出序列 16 return true; 17 else 18 return false; 19 } 20 };