#include "iostream"
#include "iomanip"
#include "stack"
using namespace std;
bool isPopOrder(const int *pPush,const int *pPop,int length)
{
bool bPossible = false;
if (pPush!=NULL&&pPop!=NULL&&length>=0)
{
const int* pNextPush = pPush;
const int *pNextPop = pPop;
stack<int> stackData;
while (pNextPop-pPop<length)
{
while (stackData.empty() || stackData.top() != *pNextPop)
{
if (pNextPush - pPush == length)
break;
stackData.push(*pNextPush);
pNextPush++;
}
if (stackData.top() != *pNextPop)
break;
stackData.pop();
pNextPop++;
}
if (stackData.empty()&&pNextPop-pPop==length)
bPossible = true;
}
return bPossible;
}
int main()
{
system("pause");
return 0;
}
剑指offer面试题22:栈的压入、弹出序列
最新推荐文章于 2025-08-14 22:07:01 发布