946. 验证栈序列

 

模拟

class Solution {
    public boolean validateStackSequences(int[] pushed, int[] popped) {
        int pushNum = pushed.length;
        int poped = popped.length;
        int indexPush = 0;
        int indexPop =0;
        Stack<Integer> stack = new Stack<>();
        boolean flag = true;
        while(true){
            if(indexPop==poped) break;
            if(stack.size()==0) {
                stack.push(pushed[indexPush]);
                indexPush++;
            }
            if(stack.peek()==popped[indexPop]){
                stack.pop();
                indexPop++;
            }
            if(stack.size()!=0 && stack.peek()!=popped[indexPop] && indexPush<pushNum){
                stack.push(pushed[indexPush]);
                indexPush++;
            }
            if( stack.size()!=0 && stack.peek()!=popped[indexPop] && indexPush==pushNum){
                flag = false;
                break;
            }
        }

        return flag;

    }
}

 

posted @ 2021-09-29 23:11  你的雷哥  阅读(57)  评论(0编辑  收藏  举报