栈的压入弹出序列


题目:

解题思路:

  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;
   }

文章作者: greatsawyer
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 greatsawyer !
  目录