描述
示例
思路
题目要我们判断两个序列是否符合入栈出栈的次序,我们就可以用一个栈来模拟。对于入栈序列,只要栈为空,序列肯定要依次入栈。那什么时候出来呢?自然是遇到一个元素等于当前的出栈序列的元素,那我们就放弃入栈,让它先出来。
具体做法
- 准备一个辅助栈,两个下标分别访问两个序列。
- 辅助栈为空或者栈顶不等于出栈数组当前元素,就持续将入栈数组加入栈中。
- 栈顶等于出栈数组当前元素就出栈。
- 当入栈数组访问完,出栈数组无法依次弹出,就是不匹配的,否则两个序列都访问完就是匹配的。
代码
class Solution {
public:
bool IsPopOrder(vector<int> pushV,vector<int> popV) {
int n = pushV.size();
//辅助栈
stack<int> s;
//遍历入栈的下标
int j = 0;
//遍历出栈的数组
for(int i = 0; i < n; i++){
//入栈:栈为空或者栈顶不等于出栈数组
while(j < n && (s.empty() || s.top() != popV[i])){
s.push(pushV[j]);
j++;
}
//栈顶等于出栈数组
if(s.top() == popV[i])
s.pop();
//不匹配序列
else
return false;
}
return true;
}
};
oeagnpcwrs
哈哈哈,写的太好了https://www.lawjida.com/
ktcuevmdjl
《密室大逃脱大神版第二季》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/53389.html
qutcusrrdi
《闪婚后,谢太太被宠上天(数字修复版 )》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/158361.html
twwnfxjvof
《无名英雄战斗在继续》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/87526.html
ifepcomqix
《无名英雄战斗在继续》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/87526.html
mcazrxvkpd
《味园新“声”代》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/75096.html
losdmdzzns
兄弟写的非常好 https://www.cscnn.com/
ciismgzttt
想想你的文章写的特别好www.jiwenlaw.com
zbrjoyzrle
看的我热血沸腾啊https://www.237fa.com/
epoempvbhw
看的我热血沸腾啊https://www.237fa.com/
nbabcccewx
怎么收藏这篇文章?
fsyzrssrrr
叼茂SEO.bfbikes.com
sucjhnmgwa
不错不错,我喜欢看 https://www.jiwenlaw.com/
rsejoyqtnj
博主真是太厉害了!!!