bool isPopOrder(const int * pPush,const int * pPop, int nLength){
bool res = false;
if (pPush != nullptr && pPop != nullptr && nLength > 0){
const int * pNextPush = pPush;
const int * pNextPop = pPop;
stack<int> stackData;
while(pNextPop - pPop < nLength) {
while(stackData.empty() || stackData.top() != *pNextPop) {
if(pNextPop - pPop == nLength)
break;
stackData.push(*pNextPush);
pNextPush++;
}
if(stackData.top() != *pNextPop)
break;
stackData.pop();
pNextPop++;
}
if(stackData.empty() && pNextPop - pPop == nLength)
res = true;
}
return res;
}
栈的压入弹出序列offer
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 栈的压入、弹出序列 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。...
- 本系列导航:剑指offer(第二版)java实现导航帖 面试题31:栈的压入弹出序列 题目要求:输入两个整数序列,...
- 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相...
- 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。 解法:开一个辅助栈,模...