码迷,mamicode.com
首页 > 其他好文 > 详细

32. 最长有效括号

时间:2021-06-08 23:23:49      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ret   sys   lse   规划   solution   equal   return   toc   动态   


class Solution {
    //二刷没想到用动态规划。
    public int longestValidParentheses(String s) {
      if(s.equals(""))return 0;
      int[] dp=new int[s.length()];
      char[] ss=s.toCharArray();
      dp[0]=0;
      int max=0;
      for(int i=1;i<ss.length;i++){
          if(ss[i]==‘(‘)
                dp[i]=0;
          else{//ss[i]==‘)‘
              if(ss[i-1]==‘(‘&&i-2>=0)
                    dp[i]=dp[i-2]+2;
              else if(ss[i-1]==‘(‘&&i-2<0)
                    dp[i]=2;
              else{//ss[i-1]==‘)‘
                   if(i-dp[i-1]-1>=0&&ss[i-1-dp[i-1]]==‘(‘)
                      if(i-dp[i-1]-2>=0)
                           dp[i]=dp[i-1]+2+dp[i-dp[i-1]-2];
                      else  
                           dp[i]=dp[i-1]+2;

                    else 
                           dp[i]=0;       
              }  
          }
          //System.out.println(dp[i]);
          max=Math.max(max,dp[i]);
      }
      return max;
    }
}

32. 最长有效括号

标签:ret   sys   lse   规划   solution   equal   return   toc   动态   

原文地址:https://www.cnblogs.com/wsshub/p/14862835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!