[LeetCode]32 Longest Valid Parentheses
2015-01-02 16:39
295 查看
https://oj.leetcode.com/problems/longest-valid-parentheses/
http://fisherlei.blogspot.com/2013/03/leetcode-longest-valid-parentheses.html
http://rleetcode.blogspot.com/2014/01/longest-valid-parentheses.html
http://fisherlei.blogspot.com/2013/03/leetcode-longest-valid-parentheses.html
http://rleetcode.blogspot.com/2014/01/longest-valid-parentheses.html
public class Solution { public int longestValidParentheses(String s) { if (s == null || s.isEmpty()) return 0; // Invalid input Stack<Integer> stack = new Stack<>(); int max = 0; int last = -1; char[] chars = s.toCharArray(); int len = chars.length; for (int i = 0 ; i < len ; i ++) { if (chars[i] == '(') { stack.push(i); } else // ')', assuming no other char { if (stack.empty()) { last = i; continue; // invalid } stack.pop(); if (stack.isEmpty()) { // 如果stack是空,那么从上一个invalid位置到i都valid // 即 i - (last + 1) + 1 max = Math.max(max, i - (last + 1) + 1); } else { // 如果stack 不为空, 那么从上一个 '(' 之后到i都valid // 即 i - (stack.peek() + 1) + 1 max = Math.max(max, i - (stack.peek() + 1) + 1); } } } return max; } }
相关文章推荐
- leetcode-32. Longest Valid Parentheses
- [leetcode 32]Longest Valid Parentheses
- LeetCode32 Longest Valid Parentheses
- Leetcode 32. Longest Valid Parentheses
- LeetCode 32 Longest Valid Parentheses
- Leetcode 32. Longest Valid Parentheses
- [Leetcode] 32 - Longest Valid Parentheses
- LeetCode 32 Longest Valid Parentheses 最大合法括号匹配长度计算 动态规划算法有待学习
- Leetcode 32 Longest Valid Parentheses DP好题
- LeetCode 32 Longest Valid Parentheses (栈,括号匹配)
- 【leetcode】32. Longest Valid Parentheses
- [Leetcode] 32. Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- [leetcode]32.Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- LeetCode 32 Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- [Java] LeetCode32 Longest Valid Parentheses
- leetcode习题解答:32. Longest Valid Parentheses