力扣-Java有效的括号

力扣-Java有效的括号_第1张图片

思路:

判断括号的有效性可以使用“栈[stack]”这一数据结构来解决。

题解:

class Solution {
    public boolean isValid(String s) {
        Map map = new HashMap();
        map.put(')','(');
        map.put(']','[');
        map.put('}','{');
        //key都是右括号,因为在遍历的过程中主要以发现右括号来做操作
        //现在需要一个栈
        //初始化一个栈,用来存储左括号
        LinkedList stack = new LinkedList<>();
        //需要进行遍历
        for(char cha : s.toCharArray()){
            //判断是否发现一个右括号
            //如果我们发现一个右括号并且右括号等于栈里的元素,说明与栈里的元素匹配上了
            if(stack.size() != 0 && map.containsKey(cha) && map.get(cha) == stack.getLast()){
                stack.removeLast();//出栈
            }else{
                stack.addLast(cha);
            }
        }
        //如果栈的大小等于0就满足要求
        return stack.size() == 0;
    }
}

你可能感兴趣的:(leetcode,java,算法)