有效的括号

it2023-08-08  68

题目

有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: “()” 输出: true

示例 2:

输入: “()[]{}” 输出: true

示例 3:

输入: “(]” 输出: false

示例 4:

输入: “([)]” 输出: false

示例 5:

输入: “{[]}” 输出: true

答案

class Solution { public boolean isValid(String s) { if (s.length()%2!=0){ return false; } Map<Character,Character> map = new HashMap<Character, Character>(); map.put(')','('); map.put(']','['); map.put('}','{'); //Deque双向队列,两头都可以添加和删除,为Queue的接口 //Queue单向队列,先进先出 Deque<Character> deque = new LinkedList<Character>(); int i=0; while (i<s.length()){ char c=s.charAt(i); if (c=='(' || c=='[' || c=='{'){ deque.push(c); }else { if(deque.peek()== map.get(c)){ deque.pop(); }else { return false; } } i++; } if (deque.size()!=0){ return false; } return true; } }
最新回复(0)