leetcode(力扣)之java第十二天

    科技2022-08-01  110

    第十二题 有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public boolean isValid(String s) { if(s == null || s.length() == 0)return true; Map<Character,Character> map = new HashMap<>(); map.put(')', '('); map.put(']', '['); map.put('}', '{'); Deque<Character> dq = new ArrayDeque(); for(char c : s.toCharArray()){ if(c == '(' || c == '[' || c == '{'){ dq.push(c); }else{ if(dq.size() == 0 || map.get(c) != dq.pop())return false; //dq.size() == 0 防止出现第一个是右括号的情况 //dq.pop();不用再另外pop了,因为if中已经pop了 } } return dq.size() == 0; //防止“{”或“[”或“(”只有一个左括号的情况 } }
    Processed: 0.009, SQL: 8