20. 有效的括号

2019-07-28  本文已影响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();
}
 
上一篇 下一篇

猜你喜欢

热点阅读