这个题还是比较好理解,关键点在使用辅助栈。
题目最重要的信息是栈里的数据是唯一,这样在当前是否需要出栈的时候,可以用相等作为判断条件。
没有这个条件的化,栈里有很多相同的数,题目会很麻烦。需要回溯。
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
stack<int> data;
int j=0;
for(int i=0;i<pushV.size();i++){
data.push(pushV[i]);
while(data.size() > 0 && popV[j]== data.top()){
data.pop();
j++;
}
}
return data.empty();
}
};



京公网安备 11010502036488号