Link:  validate stack sequences

Thought

Its pretty straight forward, just stimulate a stack and push/pop as the sequence shows. 

Code

class Solution(object):
    def validateStackSequences(self, pushed, popped):
        """
        :type pushed: List[int]
        :type popped: List[int]
        :rtype: bool
        """
        stack = []
        visited = set()
        N = len(popped)
        j = 0
        for i in pushed:
            stack.append(i)
            while stack and stack[-1] == popped[j] and j < N:
                stack.pop()
                j += 1
        if stack:
            return False
        return True

Runtime

Time: O(n)

Space: O(n)

Leave a Reply