🚀栈操作序列验证:Validate Stack Sequences(LeetCode 946)
✨题目描述
给定两个整数序列 pushed
和 popped
,每个序列中的元素 都不重复。我们假设有一个栈,初始为空。你可以按顺序将 pushed
中的元素压入栈中,同时也可以在任意时刻将栈顶元素弹出,只要它等于当前 popped
中的下一个值。
请判断:是否有可能将 pushed
和 popped
作为一次有效的栈操作序列?如果可以,返回 True
,否则返回 False
。
🧾输入输出示例
输入: pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
输出: True
输入: pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
输出: False
🔍解题分析
这是一个经典的栈模拟问题。
我们只需要模拟一个栈,依次将 pushed
中的元素压入。当栈顶的元素和 popped
中当前需要弹出的元素一致时,就出栈。这样不断操作,看是否可以将 popped
中的