用一个辅助栈来装push的序列,每装一个元素则循环查看pop序列当前元素是否与栈顶的元素相等,相等的话则看pop序列下一个元素是否与栈顶元素相等,leetcode大佬的代码:
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
Stack<Integer> pushStack=new Stack<Integer>();
int i=0;
for(int num:pushed){
pushStack.push(num);
while(!pushStack.isEmpty()&&popped[i]==pushStack.peek()){
pushStack.pop();
i++;
}
}
if(pushStack.isEmpty()) return true;
else return false;
}
}