栈的压入弹出序列

解题思路:

  1. 使用一个栈,开始为空
  2. 持续压入pushed数组元素到栈中,直到栈顶元素和popped首元素相同,开始弹出,若弹出后还是匹配,继续弹出
  3. 最后判断栈是否为空,空则true,否则false
 public boolean validateStackSequences(int[] pushed, int[] popped) {

        Stack<Integer> stack = new Stack();
        int j = 0;
        for (int elem : pushed) {
            stack.push(elem);
            while (j < popped.length && !stack.isEmpty() && stack.peek() == popped[j]) {
                stack.pop();
                j++;
            }
        }
        return j == popped.length;
    }
posted @ 2020-04-20 15:55  程序员小宇  阅读(104)  评论(0编辑  收藏  举报