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

栈的压入、弹出序列

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

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pushV int整型一维数组 
 * @param popV int整型一维数组 
 * @return bool布尔型
*/
func IsPopOrder( pushV []int ,  popV []int ) bool {
    // write code here
    stack := make([]int,0);//用整型分片模拟正整数栈
    popIndex :=0;
    for _,pushVal := range pushV{//遍历pushV
        stack = append(stack,pushVal);//模拟压栈
        for   len(stack)>0 && stack[len(stack)-1] == popV[popIndex] {//栈非空且栈顶等于popV当前数
                stack= stack[:len(stack)-1];//模拟出栈
                popIndex++;//继续遍历
        } 

    }
    return len(stack)==0 && popIndex==len(popV);
}

全部评论

相关推荐

2025-12-17 17:15
华东师范大学 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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