题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param pushV int整型一维数组
 * @param pushVLen int pushV数组长度
 * @param popV int整型一维数组
 * @param popVLen int popV数组长度
 * @return bool布尔型
 */

//构建栈
struct StackL {
    int data[2000];
    int top;
} Stack;

//压入元素
void push(int number) {
    Stack.data[Stack.top++] = number;
}
//弹出元素
void pop() {
   
    --Stack.top;
}
//栈顶元素
int Top() {
    // return Stack.data[Stack.top--];
    //不需要弹出栈顶元素
    return Stack.data[Stack.top -1];
}
//pushV压入,pushVlen压入元素的长度
bool IsPopOrder(int* pushV, int pushVLen, int* popV, int popVLen ) {
    // write code here
    Stack.top = 0;
    int i = 0, j = 0;
   while (i < pushVLen) {
        push(pushV[i]);
        i++;
        while (Stack.top > 0 && popV[j] == Top()) {
            pop();
            j++;
        }
   }
   return Stack.top == 0 && popVLen == j;
    
}

全部评论

相关推荐

09-22 19:21
南京大学 Java
牛客96763241...:刚刚想说才投十几个,养生呢,结果一看是南大本硕✌️,肯定没有问题的
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
10-29 18:20
济南大学 Java
王233:名字说一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务