0946. 验证栈序列

0946. 验证栈序列 #

  • 标签:栈、数组、模拟
  • 难度:中等

题目大意 #

给定两个整数序列 pushedpopped,每个序列中的值都不重复。

要求:如果第一个序列为空栈的压入顺序,而第二个序列 popped 为该栈的压出序列,则返回 True,否则返回 False

解题思路 #

借助一个栈来模拟压入、压出的操作。检测最后是否能模拟成功。

代码 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution:
    def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:
        stack = []
        index = 0
        for item in pushed:
            stack.append(item)
            while (stack and stack[-1] == popped[index]):
                stack.pop()
                index += 1

        return len(stack) == 0
本站总访问量  次  |  您是本站第  位访问者