算法面试4---栈、队列、优先队列

时间:2019-09-17
本文章向大家介绍算法面试4---栈、队列、优先队列,主要包括算法面试4---栈、队列、优先队列使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1 栈的基本使用

例1:LeetCode 20。本题虽然为简单题目但却是很经典的一个问题,在这里因为各处讲解比较多此处直接给出代码:

class Solution {

    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '{' || c =='[' || c == '(') {
                stack.push(c);
            }else{
                //即解决了当栈为空时弹出会报错的情况,又可以检验了一种不匹配情况
                if(stack.isEmpty())
                    return false;
                char pop = stack.pop();
                //这个使用判断不匹配更适合
                if (c == '}' && pop != '{') {
                    return false;
                }else if (c == ']' && pop != '[') {
                    return false;
                }else if (c == ')' && pop != '(') {
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
}

 与此类似题目有:LeetCode 150、71。

例2:栈与递归 LeetCode 341。这道题目是作为课下练习的,在这里可以做出来然后分析一下作为例题。

0

原文地址:https://www.cnblogs.com/youngao/p/11532417.html