[动态规划]leetcode32:最长的有效括号(hard)

编程入门 行业动态 更新时间:2024-10-25 07:29:19

[动态规划]leetcode32:最长的有效<a href=https://www.elefans.com/category/jswz/34/1767470.html style=括号(hard)"/>

[动态规划]leetcode32:最长的有效括号(hard)

题目:

题解:

  • 动态规划,dp[i]表示以i结尾的最长有效括号长度
  • 当匹配到右括号时,我们需要尝试向前匹配左括号,如果是左括号,则要更新匹配长度

代码如下:

class Solution {
public://题解:动态规划,dp[i]表示以i结尾的最长有效括号长度int longestValidParentheses(string s) {if(s.empty())return 0;int n=s.size();int dp[n];memset(dp,0,sizeof(dp));for(int i=1;i<n;++i){if(s[i]==')')//当匹配为右括号时,尝试向前匹配左括号{int pre=i-dp[i-1]-1;//pre的位置需要减去前一个有效括号长度,还有减1,才能到达未匹配的括号if(pre>=0&&s[pre]=='(')//如果是左括号,则更新匹配长度{dp[i]=dp[i-1]+2;//长度加2,表示左右两个括号匹配好了if(pre>0)//处理独立的括号对,比如()(),()(()){dp[i]+=dp[pre-1];}}}}return *max_element(dp,dp+n);}
};

更多推荐

[动态规划]leetcode32:最长的有效括号(hard)

本文发布于:2023-07-28 18:53:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1279926.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:括号   最长   动态   hard

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!