JAVA练习342- 有效的括号
题目概览给定一个只包括(){}[]的字符串s判断字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。示例 1输入s ()输出true示例 2输入s ()[]{}输出true示例 3输入s (]输出false示例 4输入s ([])输出true示例 5输入s ([)]输出false提示1 s.length 10^4s仅由括号()[]{}组成来源20. 有效的括号 - 力扣LeetCode解题分析方法栈利用栈先进后出的特性如果是左括号就入栈如果是右括号就出栈并比较两个括号是否是一对。时间复杂度O(n)空间复杂度O(n)class Solution { public boolean isValid(String s) { MapCharacter, Character map new HashMap(); map.put((, )); map.put([, ]); map.put({, }); DequeCharacter dq new LinkedList(); for (char c: s.toCharArray()) { if (map.containsKey(c)) { dq.push(c); } else { if (dq.isEmpty() || map.get(dq.poll()) ! c) { return false; } } } return dq.isEmpty(); } }