首页 > 其他分享 >32. 最长有效括号

32. 最长有效括号

时间:2023-10-16 13:00:34浏览次数:33  
标签:maxVal int 32 括号 最长 dp size

给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。


示例 1:

输入:s = "(()"
输出:2
解释:最长有效括号子串是 "()"

思路


class Solution {
public:
    int longestValidParentheses(string s) {
        int size = s.length();
        vector<int> dp(size, 0);

        int maxVal = 0;
        for(int i = 1; i < size; i++) {
            if (s[i] == ')') {
                if (s[i - 1] == '(') {
                    dp[i] = 2;
                    if (i - 2 >= 0) {
                        dp[i] = dp[i] + dp[i - 2];
                    }
                } else if (dp[i - 1] > 0) {
                    if ((i - dp[i - 1] - 1) >= 0 && s[i - dp[i - 1] - 1] == '(') {
                        dp[i] = dp[i - 1] + 2;
                        if ((i - dp[i - 1] - 2) >= 0) {
                            dp[i] = dp[i] + dp[i - dp[i - 1] - 2];
                        }
                    }
                }
            }
            maxVal = max(maxVal, dp[i]);
        }
        return maxVal;
    }
};

标签:maxVal,int,32,括号,最长,dp,size
From: https://www.cnblogs.com/lihaoxiang/p/17767125.html

相关文章

  • 2023-2024-1 20231323 《计算机基础与程序设计》第三周学习总结
    2023-2024-120231323《计算机基础与程序设计》第3周学习总结作业信息作业所属课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第三周作业作业目标学习进制转换与数据表示法作业正文https://www.cnblogs.com/besti-Wangmingxu......
  • 学期2023-2024 20231324 《计算机基础与程序设计》第三周学习总结
    2023-202420231324《计算机基础与程序设计》第三周学习总结 作业信息作业属于的课程2023-2024计算机基础与程序设计作业要求2023-2024计算机基础与程序设计第一周作业作业目标数字分类与计数法、位置计数法、进制转换、模拟数据与数字数据、压缩与解压、数字......
  • P3214 卡农
    题目传送门description给定\(n,m\leq10^6\),求\(m\)个互不相同的非空集合,每个集合的元素都是\([1,n]\)中的正整数,且每个正整数在所有集合里出现的次数均为偶数的方案数。(集合之间无序)solution感觉很妙的dp和组合。不妨先不考虑集合之间无序,因为每个集合互不相同,最后答......
  • 2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第3周学习总结
    2023-2024-120231321王曦轶《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第三周作业)这个作业的目标<学习计算机......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记5(必做)
    学习笔记5EXT2文件系统概述1级和2级文件系统函数实践过程EXT2文件系统概述EXT2(SecondExtendedFileSystem)是Linux操作系统早期使用的文件系统,它是EXT文件系统家族的第二个版本,于1993年首次引入。在现代Linux系统中已经被后续版本的EXT文件系统(如EXT3和EXT4)所取代。1.......
  • 2023-2024-1 20231325 《计算机基础与程序设计》第三周学习总结
    目录作业信息教材学习内容总结1.《计算机科学概论》第二章,第三章2.《c语言程序设计》第二章作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《计算机科学概论》第二章,第三章并完成云班课测试;2.学习《C语言程......
  • 2023-2024-1 20231320 《计算机基础与程序设计》第三周学习总结
    2023-2024-120231320《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第三周作业)这个作业的目标<自学《计算机基础与......
  • AtCoder Beginner Contest 324
    D-SquarePermutation须知:最大的平方数的平方一定小于等于10n,平方数最多为10(n/2)(因为再大会越界)因为要求的数一定是原数的排列组合,所以它们的元素和对应的元素个数一定相同所以只要判断平方数的字符串是否与原字符串相等即可(这里可以利用排序判断)点击查看代码#include<bi......
  • AtCoder Beginner Contest 324 DF题题解
    比赛链接D-SquarePermutation其实比较简单,但是比赛时候脑子不转了,竟然在尝试枚举全排列,然后算了一下复杂度直接不会做了。正解应该是枚举完全平方数,底数枚举到\(sqrt(10^{14})\)即可,因为n最大为13。然后统计一下这个完全平方数各个数字出现了多少个,和读入的比较一下是......
  • 2023-2024-1 20231326 《计算机基础与程序设计》第三周周总结
    2023-2024-120231326《计算机基础与程序设计》第三周周总结目录2023-2024-120231326《计算机基础与程序设计》第三周周总结作业信息教材内容总结《计算机科学概论》《C语言程序设计》学习进度条作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这......