
新建一个栈,将数组A压入栈中,当栈顶元素不相等时说明他不是立马出栈,就先将它入栈,当栈顶元素等于数组B时,就将其出栈,当循环结束时,判断栈是否为空,若为空则返回true.
public boolean IsPopOrder(int [] pushA,int [] popA) {
if (popA.length == 0 || pushA.length == 0 || popA.length!=pushA.length) {
return false;
}
Stack<Integer> stack = new Stack<>();
int j = 0;
for (int i = 0;i<pushA.length;i++) {
stack.push(pushA[i]);
while (!stack.empty()&&stack.peek() == popA[j]) {
stack.pop();
j++;
}
}
return stack.empty();
}
本文介绍了一种使用栈来判断两个整数序列是否为有效出入栈顺序的方法。通过一个循环,将输入的推栈序列压入栈中,并检查是否能按照弹栈序列出栈。最终,如果栈为空,则说明序列合法。
454

被折叠的 条评论
为什么被折叠?



