给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系
class Solution { public boolean isValid(String s) { if(s==null || s.length() == 0) { return true; } char[] chars = s.toCharArray(); Map<Character,Character> map = new HashMap<Character,Character>(); map.put(')', '('); map.put(']', '['); map.put('}', '{'); Stack<Character> stack = new Stack<Character>(); for(int i = 0; i<chars.length; i++) { if(map.containsValue(chars[i])) { stack.add(chars[i]); } if(map.containsKey(chars[i]) && (stack.empty() || !(stack.pop().equals(map.get(chars[i]))))) { //System.out.println("ddd:"+stack.size()); return false; } /* * if(map.containsKey(chars[i]) && stack==null) { * * return false; } */ } if(!stack.empty()) { return false; } return true; } }