字节二面算法题。
以下实现的是,找出有效的括号对数(输出有效括号的数目),没有实现连续
//dp[i]表示第i位上有效括号的长度 public int longestValidParentheses(String s) { if(s==null||s.length()<=0) return 0; int[] dp = new int[s.length()]; dp[0]=0; int max=0; int i=1; while(i<s.length()){ char ch= s.charAt(i); if(ch ==‘(‘){ dp[i] = dp[i-1]; }else{ if(s.charAt(i-1)==‘(‘){ dp[i]=dp[i-1]+2; }else if(s.charAt(i-1) == ‘)‘){ if(i-dp[i-1]-1<0){ dp[i]=dp[i-1]; } else if(s.charAt(i-dp[i-1]-1)==‘(‘){ dp[i]=dp[i-1]+2; }else{ dp[i]=dp[i-1]; } } } max=Math.max(dp[i],max); i++; } return max; }