您的位置:首页 > Web前端

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

2017-07-26 11:18 134 查看

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

class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
int length1 = pushV.size();
int length2 = popV.size();
if(length1 <= 0 || length2 <= 0 || length1 != length2)
return false;
stack<int> sta;
int current = 0;
for(int i = 0;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;
}
};

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: