192. 【应-43-1·简】出栈序列合法性
简单
Python
📋 题目描述
给定 N 个不同整数依次入栈的顺序(入栈序列),再给定一个候选的出栈序列。判断该出栈序列是否能通过合法的"入栈/出栈"操作得到。
提示:用一个辅助栈模拟。按入栈序列依次把元素压入栈,每次压入后,只要栈顶等于候选出栈序列当前位,就弹出并把指针后移。走完入栈序列后,若栈空且出栈序列已全部匹配,则合法。
📥 输入描述
第一行一个整数 N(1<=N<=1000)。
第二行 N 个不同整数,表示入栈序列(空格分隔)。
第三行 N 个整数,表示候选出栈序列(空格分隔)。
📤 输出描述
合法输出 `YES`,否则输出 `NO`。
输入样例
5 1 2 3 4 5 3 2 5 4 1
输出样例
YES
提示:经典栈模拟:辅助栈 stack、出栈序列指针 j。
对每个入栈元素 x:stack.append(x);while stack and stack[-1]==pop_seq[j]: stack.pop(); j+=1。
最后判断 stack 是否为空(且 j 是否走到末尾)。
请登录后提交代码