美文网首页
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