/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @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);



}