/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pushV int整型一维数组
* @param pushVLen int pushV数组长度
* @param popV int整型一维数组
* @param popVLen int popV数组长度
* @return bool布尔型
*/
#include <stdbool.h>
bool IsPopOrder(int* pushV, int pushVLen, int* popV, int popVLen ) {
// write code here
if (pushVLen != popVLen) {
return false;
}
int pushIndex = 0;
int popIndex = 0;
int stack[1000];
int top = -1;
while (popIndex < popVLen) {
while (top == -1 || stack[top] != popV[popIndex]) {
if (pushIndex >= pushVLen) {
break;
}
stack[++top] = pushV[pushIndex++];
}
if (stack[top] != popV[popIndex]) {
break;
}
top--;
popIndex++;
}
return (popIndex == popVLen && top == -1);
}