- 给定无重复元素的两个等长數组分别表述入栈序列和出栈序列,请问:这样的出栈序列是否可行:
- 例如:入栈序列为”ABCDEFG”、出栈序列为”BAEDFGC”则可行;
- 入栈序列为”ABCD”、出栈序列为”BDAC”,不可行;
- 使用一个顺序栈s其栈顶指针为top栈S来模拟压栈出栈的操作栈顶元素即为s,记入栈序列为A出栈序列為B,遍历B的每个元素b:
- 初始状态:栈s为空认为栈顶元素与b相等,将A的当前元素(第一个顺序栈s其栈顶指针为top元素)入栈;
- case1:若b与栈顶元素相等则检查B的下一个顺序栈s其栈顶指针为top元素,栈顶元素s出栈;
- case2:若b与栈顶元素不相等将A的当前元素入栈,目的是希望在A的剩余元素中找到b;