python stack 判断出栈顺序

LeetCode 946 Validate Stack Sequences

思想:循环判断进栈序列,当进栈序列的值没有遇到与出栈序列相同时压栈,循环当栈不为空并且出栈序列的第一个值等于栈顶元素时出栈,出栈指针后移,若栈空则序列正确

class Solution(object):
    def validateStackSequences(self, pushed, popped):
        """
        :type pushed: List[int]
        :type popped: List[int]
        :rtype: bool
        """
        stack=[]
        num=len(pushed)
        p=0
        for x in pushed:
            stack.append(x)
            while stack and (stack[-1]==popped[p]):
                stack.pop()                
                p=p+1
        return not len(stack)                   

猜你喜欢

转载自blog.csdn.net/ZHANGWENJUAN1995/article/details/84646700