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

栈的压入、弹出序列

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

AB2 栈的压入、弹出序列

思路:

step1:定义一个辅助栈stack;创建一个计数器并置零:j=0;
step2:逐个将pushV的元素添加到辅助栈stack中,添加过程中如果stack的最后一个元素与popV中第j个元素相同,则将该元素弹出stack栈中,并且计数器+1;
step3:如果最后,j == len(popV),则证明全部元素都在内,满足要求;

代码如下:

class Solution:
    def IsPopOrder(self , pushV: List[int], popV: List[int]) -> bool:
        j = 0
        stack = []
        for i in pushV:
            stack.append(i)
            while stack != [] and stack[-1] == popV[j]:
                stack.pop()
                j += 1
        return j == len(popV)
全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务