Longest Valid Parentheses
来源:互联网 发布:淘宝显示在线人数插件 编辑:程序博客网 时间:2024/05/16 18:48
问题描述
Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.
For “(()(()”, the longest valid parentheses substring is “()”, which has length = 2.
Another example is “)()())”, where the longest valid parentheses substring is “()()”, which has length = 4.
思考:考虑()的嵌套:((()))和循环()()()
想法:动态规划
- 1、考虑嵌套时,dp[i] = dp[i] + dp[i + 1] 如果s.charAt(i - 1) = s.charAt(i);
- 2、考虑循环时,dp[i]的前一个()的标号位i - dp[i], 如:()()((()));
代码:
public class Solution { public int longestValidParentheses(String s) { int toMatch = 0; int max = 0; int[] dp = new int[s.length() + 1]; for(int i = 1 ; i <= s.length(); i++){ if(s.charAt(i - 1) == '(') toMatch++; else{ if(toMatch > 0){ toMatch--; dp[i] = 2; if(s.charAt(i - 2) == ')')//the "((()))",嵌套 dp[i] += dp[i - 1]; dp[i] += dp[i - dp[i]]; //()()()循环 if(dp[i] > max) max = dp[i]; } } } return max; }}
0 0
- LeetCode: Longest Valid Parentheses
- LeetCode Longest Valid Parentheses
- LeetCode: Longest Valid Parentheses
- [Leetcode] Longest Valid Parentheses
- [leetcode]longest Valid Parentheses(!!)
- Longest Valid Parentheses
- Longest Valid Parentheses
- [Leetcode] Longest Valid Parentheses
- leetcode Longest Valid Parentheses
- LeetCode31:Longest Valid Parentheses
- longest valid parentheses
- Longest Valid Parentheses
- 【leetcode】Longest Valid Parentheses
- Longest Valid Parentheses
- [LeetCode]Longest Valid Parentheses
- Longest Valid Parentheses
- Longest Valid Parentheses
- Longest Valid Parentheses
- [leetcode]Compare Version Numbers
- Junit4 三角形测试例子,供初学者借鉴(仅供参考)
- spring中bean配置的常用方式
- 《特种兵之侦察兵》
- 判断字符串及其子串是否是包含回文字,如果包含输出长度。
- Longest Valid Parentheses
- iOS开发系列之常用自定义控件开发集—Android的Toast控件开发
- 欢迎使用CSDN-markdown编辑器
- Path Sum II
- 结构体和枚举
- 静态代码块
- Train Problem I(经典栈)
- Python标准库:内置函数sorted(iterable[, key][, reverse])
- [MFC] Edit Control单击全选后如何使后续的单击不全选?