leetcode 32 Longest Valid Parentheses
来源:互联网 发布:c语言数组视频 编辑:程序博客网 时间:2024/05/01 21:26
这是一道纯粹的动态规划题目。
我之前考虑成了二维dp了。
dp方程是如果前一个的括号是‘(’,那么如果j=i+1+dp[i+1]步之后的括号是‘)’那么dp[i]=dp[i+1]+2;
同时别忘了考虑到并列的这种情形,所以要加上dp[i]+=dp[j+1];
代码如下:
int longestValidParentheses(string s) { int len = s.length(); int *dp = new int[len]; if(len<2)return 0; int max = 0; for(int k = 0;k<len;k++) dp[k] = 0; for(int i = len-2;i>=0;i--) { if(s[i]=='(') { int j = i+1+dp[i+1]; if(j<len&&s[j]==')'){ dp[i] = dp[i+1]+2; if(j+1<len)dp[i]+=dp[j+1]; } if(max<dp[i])max = dp[i]; } } return max; }
0 0
- 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
- [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
- NOIP2010 机器翻译 解题报告(水题)
- MyBatis学习总结(一)——MyBatis快速入门
- 图结构练习——最小生成树
- HDU 4548 美素数
- UVA 11419 SAM I AM 二分图+最小覆盖点
- leetcode 32 Longest Valid Parentheses
- XENSERVER虚拟端口IP设置
- JSON解析学习笔记(json、gson、fastjson)
- POJ--2485
- BZOJ 1968: [Ahoi2005]COMMON 约数研究
- SINGLETON宏定义浅析
- 每个人都能徒手写递归神经网络–手把手教你写一个RNN
- 网络编程(二):TCP段格式中的URG与PSH到底有什么不同?
- SQLserver表字段修改后的保存