栈的经典问题,判断一个序列是不是栈的弹出序列。

import java.util.Stack;

public class Solution {
    public boolean IsPopOrder(int[] pushA, int[] popA) {
        Stack<Integer> stack = new Stack<>();
        int p = 0;
        for (int i = 0; i < pushA.length; i++) {
            stack.push(pushA[i]);

            while (!stack.empty() && stack.peek() == popA[p]) {
                stack.pop();
                p++;
            }
        }

        return p == popA.length;
    }
}