• Java实现 LeetCode 32 最长有效括号


    32. 最长有效括号

    给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。

    示例 1:

    输入: “(()”
    输出: 2
    解释: 最长有效括号子串为 “()”
    示例 2:

    输入: “)()())”
    输出: 4
    解释: 最长有效括号子串为 “()()”

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-valid-parentheses
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution {
        public int longestValidParentheses(String s) {
    	char[] chars = s.toCharArray();
    	return Math.max(calc(chars, 0, 1, chars.length, '('), calc(chars, chars.length -1, -1, -1, ')'));
    }
    private static int calc(char[] chars , int i ,  int flag,int end, char cTem){
    	int max = 0, sum = 0, currLen = 0,validLen = 0;
    	for (;i != end; i += flag) {
    		sum += (chars[i] == cTem ? 1 : -1);
            currLen ++;
    		if(sum < 0){
    			max = max > validLen ? max : validLen;
    			sum = 0;
    			currLen = 0;
                validLen = 0;
    		}else if(sum == 0){
                validLen = currLen;
            }
    	}
    	return max > validLen ? max : validLen;
    }
    }
    
  • 相关阅读:
    Mysql 怎么限制 IP 访问?
    LA2965 n个数中选出最多个数异或和为0
    UVALive 2678 大于s的最短子序列和
    UVA 1193 区间相关(greedy)
    UVA 11992 线段树
    UVA 1400 线段树
    NBUT 1120 线段树
    最大连续区间和的算法总结(转)
    hiho 1015 KMP
    hiho#1128 : 二分·二分查找
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076323.html
Copyright © 2020-2023  润新知