Valid Parentheses -- LeetCode
2014-02-24 07:25
274 查看
原题链接: http://oj.leetcode.com/problems/valid-parentheses/
这道题思路比较简单,主要考察对栈数据结构的操作。遇到左括号就入栈,遇到右括号看栈顶左括号是否与当前右括号匹配,匹配继续,否则返回false。算法的时间复杂度是O(n),空间复杂度也是O(n)。代码如下:
这道题思路比较简单,主要考察对栈数据结构的操作。遇到左括号就入栈,遇到右括号看栈顶左括号是否与当前右括号匹配,匹配继续,否则返回false。算法的时间复杂度是O(n),空间复杂度也是O(n)。代码如下:
public boolean isValid(String s) { if(s==null || s.length()==0) return true; LinkedList<Character> stack = new LinkedList<Character>(); for(int i=0;i<s.length();i++) { switch(s.charAt(i)) { case '(': case '{': case '[': stack.push(s.charAt(i)); break; case ')': if(stack.isEmpty() || stack.pop()!='(') return false; break; case '}': if(stack.isEmpty() || stack.pop()!='{') return false; break; case ']': if(stack.isEmpty() || stack.pop()!='[') return false; break; default: break; } } if(stack.isEmpty()) return true; return false; }实现中的小陷阱是注意结束的时候要判一下栈是否为空,不为空仍是不合法的。
相关文章推荐
- leetcode: 20. Valid Parentheses
- LeetCode(20)Valid Parentheses
- [LeetCode] Valid Parentheses
- leetcode--Valid Parentheses
- leetcode笔记:Valid Parentheses
- 【Leetcode】Valid Parentheses in JAVA——一个括号de了20分钟bug的故事
- leetcode 20. Valid Parentheses
- [leetcode 20] Valid Parentheses
- Leetcode235: Longest Valid Parentheses
- Leetcode之Longest Valid Parentheses
- [LeetCode]20. Valid Parentheses
- 【一天一道LeetCode】#32. Longest Valid Parentheses
- valid parentheses leetcode 第20题
- Valid Parentheses--LeetCode
- LeetCode——20. Valid Parentheses
- 【LeetCode20】【Valid Parentheses】
- LeetCode之Valid Parentheses
- Leetcode: Valid Parentheses
- 【LeetCode】LeetCode——第20题:Valid Parentheses
- leetcode-20-Valid Parentheses