给你一个数组 target
和一个整数 n
。
给你一个空栈和两种操作:
"Push"
:将一个整数加到栈顶。"Pop"
:从栈顶删除一个整数。同时给定一个范围 [1, n]
中的整数流。
使用两个栈操作使栈中的数字(从底部到顶部)等于 target
。你应该遵循以下规则:
target
,则不要从流中读取新的整数,也不要对栈进行更多操作。请返回遵循上述规则构建 target
所用的操作序列。如果存在多个合法答案,返回 任一 即可。
示例 1:
输入:target = [1,3], n = 3 输出:["Push","Push","Pop","Push"] 解释:一开始栈为空。最后一个元素是栈顶。 从流中读取 1 并推入数组 -> [1] 从流中读取 2 并推入数组 -> [1,2] 从栈顶删除整数 -> [1] 从流中读取 3 并推入数组 -> [1,3]
示例 2:
输入:target = [1,2,3], n = 3 输出:["Push","Push","Push"] 解释:一开始栈为空。最后一个元素是栈顶。 从流中读取 1 并推入数组 -> [1] 从流中读取 2 并推入数组 -> [1,2] 从流中读取 3 并推入数组 -> [1,2,3]
示例 3:
输入:target = [1,2], n = 4 输出:["Push","Push"] 解释:一开始栈为空。最后一个元素是栈顶。 从流中读取 1 并推入数组 -> [1] 从流中读取 2 并推入数组 -> [1,2] 由于栈(从底部到顶部)等于 target,我们停止栈操作。 从流中读取整数 3 的答案不被接受。
提示:
1 <= target.length <= 100
1 <= n <= 100
1 <= target[i] <= n
target
严格递增1. 请不要在评论区发表题解!
2. 评论区可以发表关于对翻译的建议、对题目的疑问及其延伸讨论。
3. 如果你需要整理题解思路,获得反馈从而进阶提升,可以去题解区进行。