【LeetCode20】【Valid Parentheses】
2017-05-04 11:39
363 查看
题目:
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.个人思路/**我优化几遍后的代码 * 最短用时:8ms * beats:93.67% */ public boolean isValid1(String s) { if(s.length()%2!=0||s.length()==0){return false;} Stack<Character> stack = new Stack<Character>(); for(char c:s.toCharArray()){ if(c=='('||c=='{'||c=='['){stack.push(c);} else if(stack.isEmpty()){return false;} else if(c==']'){if(stack.peek()!='['){return false;}stack.pop();} else if(c==')'){if(stack.peek()!='('){return false;}stack.pop();} else if(c=='}'){if(stack.peek()!='{'){return false;}stack.pop();} } return stack.isEmpty(); }
2.网上大神思路
/** * 网上大神思路 * 用时:10ms * beats:65.31% */ public boolean isValid2(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(); }
相关文章推荐
- leetcode_20_Valid Parentheses (easy)
- LeetCode 20 -- Valid Parentheses
- [Leetcode] 20. Valid Parentheses
- leetcode 20. Valid Parentheses
- 20. Valid Parentheses-leetcode-java
- [leetcode]20. Valid Parentheses(java)
- Leetcode 20. Valid Parentheses
- leetcode题解-20. Valid Parentheses
- Leetcode 20 Valid Parentheses 判断括号匹配
- [leetcode Q20] Valid Parentheses
- LeetCodet题解--20. Valid Parentheses(括号匹配问题)
- LeetCode20:Valid Parentheses
- [leetcode 20] Valid Parentheses
- leetcode 20. Valid Parentheses
- leetcode-20. Valid Parentheses
- Leetcode_20_Valid Parentheses
- leetcode 20. Valid Parentheses
- LeetCode-20-Valid Parentheses(有效的括号)
- leetcode解题报告20. Valid Parentheses
- LeetCode-20. Valid Parentheses