LeetCode:90.最长有效括号

目录

1.最长有效括号


1.最长有效括号

设dpi表示以i位置结尾的最长有效括号长度,假设i位置为'),可以分为以下两种情况:

  1. i - 1位置为(,那么i - 1和i位置刚好可以拼接为一个有效括号长度为2,如果i - 2位置还有括号的话,那么dpi = dpi - 2 + 2,下面用一张图来表示
  2. i - 1的位置为),如果dpi - 1 >= 0的话,表示前面还有有效括号,并且i - dpi - 1 - 1 >= 0,i - dpi - 1 - 1的位置为(,dpi = dpi - 1 + 2,如果i - dpi - 1 - 2 >= 0的话,dpi = dpi - 1 + 2 + dpi - dp\[i - 1 - 2],下面用图表示
cpp 复制代码
class Solution {
public:
    int longestValidParentheses(string s) {
        int n = s.size();
        vector<int> dp(n);
        int length = 0;
        for(int i = 1; i < n; i++)
        {
            if(s[i] == ')')
            {
                if(s[i - 1] == '(')
                {
                    dp[i] = 2;
                    if(i - 2 >= 0)
                        dp[i] = dp[i - 2] + dp[i];
                }
                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];
                        }
                    }
                }
            }
            length = max(length, dp[i]);
        }
        return length;
    }
};
相关推荐
vibecoding日记1 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21383 小时前
Verilog参数化游程编码RLE模块
算法
望易4 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
复杂网络8 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
HjhIron1 天前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩1 天前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法
黄敬峰1 天前
面试必刷:从JS底层包装类到双指针,彻底搞懂字符串与回文算法
算法