LeetCode 20. Valid Parentheses 判断()[]{}是否完整

来源:互联网 发布:艾默生网络能源被收购 编辑:程序博客网 时间:2024/06/07 00:11
  • Total Accepted: 189650
  • Total Submissions: 576679
  • Difficulty: Easy
  • Contributor: LeetCode

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.

Subscribe to see which companies asked this question.

public boolean isValid(String s) {if(s==null) return false;char[] mid = s.toCharArray();List<Character> store = new ArrayList<Character>();for(char c:mid){if(c=='('||c=='['||c=='{')store.add(c);if(c==')'){if(store.size()>0){if(store.get(store.size()-1)!='(')return false;store.remove(store.size()-1);}else return false;}if(c==']'){if(store.size()>0){if(store.get(store.size()-1)!='[')return false;store.remove(store.size()-1);}elsereturn false;}if(c=='}'){if(store.size()>0){if(store.get(store.size()-1)!='{')return false;store.remove(store.size()-1);}elsereturn false;}}if(store.isEmpty())return true;else return false;}


注意 just the characters,也可以利用栈Stack

public boolean isValid(String s) {Stack<Character> stack = new Stack<Character>();for (char c : s.toCharArray()) {if (c == '(')stack.push(')');else if (c == '{')stack.push('}');else if (c == '[')stack.push(']');else if (stack.isEmpty() || stack.pop() != c)return false;}return stack.isEmpty();}

0 0
原创粉丝点击