剑指offer22 栈的压入、弹出序列

时间:2024-12-20 18:36:08

写的一个代码,虽然正确通过了,但我觉得会报vector越界的错误

class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
int length1 = pushV.size();
int length2 = popV.size();
if(length1 <= || length2 <= || length1 != length2)
return false;
stack<int> sta;
int current = ;
for(int i = ;i < length2;i++){
if(sta.empty()){
while(pushV[current] != popV[i]){
if(current >= length1)
return false;
sta.push(pushV[current]);
current++;
}
current++;
}
else{
if(sta.top() == popV[i]){
sta.pop();
}
else{
while(pushV[current] != popV[i]){
if(current >= length1)
return false;
sta.push(pushV[current]);
current++;
}
current++;
}
}
}
return true;
}
};