package com.算法专练.力扣.验证栈序列;
import java.util.ArrayDeque;
import java.util.Deque;
/**
* @author xnl
* @Description:
* @date: 2022/8/31 23:45
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
int[] pushed = {1,2,3,4,5}, popped = {4,5,3,2,1};
System.out.println(solution.validateStackSequences(pushed, popped));
}
public boolean validateStackSequences(int[] pushed, int[] popped) {
Deque<Integer> deque = new ArrayDeque<>();
int n = pushed.length;
int j = 0;
for (int i = 0; i < n; i++){
if (deque.isEmpty() || deque.peek() != popped[j]){
deque.push(pushed[i]);
}
while (!deque.isEmpty() && deque.peek() == popped[j]){
deque.poll();
j++;
}
}
while (j < n && !deque.isEmpty() && deque.peek() == popped[j]){
j++;
}
return deque.isEmpty();
}
}
模拟即可