力扣HOT100 - 20. 有效的括号

力扣HOT100 - 20. 有效的括号 解题思路方法一较简单好理解class Solution { public boolean isValid(String s) { StackCharacter stack new Stack(); char[] arr s.toCharArray(); for (char ch : arr) { // 左括号把对应的右括号压栈 if (ch () { stack.push()); } else if (ch {) { stack.push(}); } else if (ch [) { stack.push(]); } else { // 遇到右括号 // 栈空说明没有匹配的左括号 if (stack.isEmpty() || stack.pop() ! ch) { return false; } } } // 遍历结束栈必须是空的所有左括号都匹配完毕 return stack.isEmpty(); } }方法二class Solution { private static final MapCharacter,Character map new HashMapCharacter,Character(){{ put({,}); put([,]); put((,)); put(?,?); }}; public boolean isValid(String s) { if(s.length() 0 !map.containsKey(s.charAt(0))) return false; LinkedListCharacter stack new LinkedListCharacter() {{ add(?); }}; for(Character c : s.toCharArray()){ if(map.containsKey(c)) stack.addLast(c); else if(map.get(stack.removeLast()) ! c) return false; } return stack.size() 1; } }