首页 > 其他 > 详细

32. 最长有效括号

时间:2021-06-08 17:06:56      阅读:19      评论:0      收藏:0      [点我收藏+]

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. 最长有效括号

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!