美文网首页
20. 有效的括号

20. 有效的括号

作者: 一只小星_ | 来源:发表于2019-07-28 17:16 被阅读0次

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

    输入: "()"
    输出: true

    输入: "(]"
    输出: false

    输入: "{[]}"
    输出: true

    思路:

    设置一个map存放括号
    private HashMap<Character,Character> mappings = new HashMap<>();
         mappings.put(')','(');
         mappings.put('}','{');
         mappings.put(']','[');
    把所有左括号进栈,当遇到右括号的时候,出栈一个左括号,
    如果不匹配,就直接false,最后遍历完之后,判断栈空不空,如果不空,false。
    for (int i=0;i<s.length();i++){
                
                if (mappings.containsKey(s.charAt(i))){
                    char pop = stack.isEmpty()?'#':stack.pop();
                    if (pop != mappings.get(s.charAt(i))){
                        return false;
                    }
                    
                }else {
                    stack.push(s.charAt(i));
                }
            }
            return stack.isEmpty();
    }
     
    

    相关文章

      网友评论

          本文标题:20. 有效的括号

          本文链接:https://www.haomeiwen.com/subject/rijprctx.html