1.思路:使用一个辅助辅助栈,对于pushed中的元素,每次将一个元素入栈,然后栈顶元素和出栈顺序的元素相比,如果相同,则将元素出栈,也就是用在辅助栈上模拟入栈和出栈顺序,最后栈为空,则说明出栈顺序是可行的,否则不行。
2代码:
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
Stack<Integer> Stack = new Stack();
int i = 0;
for(int num : pushed){
Stack.push(num);
while(!Stack.isEmpty() && popped[i] == Stack.peek()){
Stack.pop();
i++;
}
}
return Stack.isEmpty();
}
}