一、题目
二、思路及代码 借助一个辅助栈来模拟入栈过程, ①在入栈之前先判断当前要入栈的元素是否与出栈数组当前元素相同, ② 如果不相同就入栈; ③如果相同就不用入栈了(不入栈=出栈),然后再依次取出栈的栈顶元素看是否与出栈数组当前值相同,相同的话就依次出栈,知道不再相等或者全部出栈; ④若入栈元素还没有遍历完,就继续重复前三个步骤
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pushV int整型vector
* @param popV int整型vector
* @return bool布尔型
*/
bool IsPopOrder(vector
// write code here
int i=0;
int j=0;
for(i,j;i //相同就不入栈 if(pushV[i]==popV[j]){ j++; //遍历栈顶元素,若与出栈元素相同就出栈 while(j j++; st.pop(); } }else{ //不相同就入栈 st.push(pushV[i]); } //每处理完一个入栈数组元素就+1 i++; } if(st.empty()) return true; return false; } private: stack }; 好文阅读
发表评论