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

栈的压入、弹出序列

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

kotlin
import java.util.Stack
object Solution {
    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    * 
        * @param pushV int整型一维数组 
        * @param popV int整型一维数组 
        * @return bool布尔型
    */
    fun IsPopOrder(pushV: IntArray,popV: IntArray): Boolean  {
        val stack = Stack<Int>()
        var start = 0
        //模拟入栈,在入栈的过程中可能会出栈,所以可以边入栈边模拟出栈,判断栈顶元素是否等于出栈队列的元素,是的话就出栈
        for(i in pushV.indices) {
            stack.push(pushV[i])
            while(stack.isNotEmpty() && stack.peek() == popV[start]) {
                stack.pop()
                start++
            }
        }
        return stack.isEmpty()
    }
}


全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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