首页 > 代码库 > [leetcode]Valid Parentheses
[leetcode]Valid Parentheses
Valid Parentheses
Given a string containing just the characters
‘(‘
,‘)‘
,‘{‘
,‘}‘
,‘[‘
and‘]‘
, determine if the input string is valid.The brackets must close in the correct order,
"()"
and"()[]{}"
are all valid but"(]"
and"([)]"
are not.
算法思路:
很经典的栈问题,我采用了大量的数据结构,以保证
代码如下:
1 public class Solution { 2 public boolean isValid(String s) { 3 if(s == null || (s.length() & 1 )== 1) return false; 4 Set<Character> leftSet = new HashSet<Character>(); 5 Set<Character> rightSet = new HashSet<Character>(); 6 char[] left = {‘(‘,‘[‘,‘{‘}; 7 char[] right = {‘)‘,‘]‘,‘}‘}; 8 Map<Character,Character> pair = new HashMap<Character,Character>(); 9 for(int i = 0; i < left.length;leftSet.add(left[i]),pair.put(left[i], right[i++]));10 for(int i = 0; i < right.length;rightSet.add(right[i++]));11 Stack<Character> stack = new Stack<Character>();12 for(int i = 0; i < s.length(); i++){13 char c = s.charAt(i);14 if(leftSet.contains(c)) {15 stack.push(c);16 }else if(rightSet.contains(c)){17 if(stack.isEmpty() || c != pair.get(stack.pop()) ) return false; 18 }19 }20 return stack.isEmpty();21 }22 }
其实完全木有必要,但是我学的数据结构还是多用比较好
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。