LeetCode32.Longest-Valid-Parentheses<最长有效括号>

题目:

思路:

遍历括号.遇到右括号然后前一个是左括号 那就res+2,然后重定位 i 的值 并且长度减少2;

但是问题在于无法判断最长的括号.只能得到string内的全部括号长度.

错误代码:

写过一题类似的,那题是找括号数.记得是使用的栈,但是死活写不出来.

看完答案觉得答案有一些反常.

代码是:

cpp 复制代码
//code
 
class Solution {
public:
    int longestValidParentheses(string s) {
        int n = s.length();
        int res = 0;
        stack<int> st; // 栈用来记录左括号的位置
        st.push(-1); // 将-1压入栈中,作为一个"虚拟的"左括号位置
        for (int i = 0; i < n; i++) {
            if (s[i] == '(') { // 如果是左括号,将其位置压入栈中
                st.push(i);
            } else { // 如果是右括号
                st.pop(); // 弹出栈顶的左括号位置
                if (st.empty()) { // 如果栈为空,说明当前的右括号没有匹配的左括号
                    st.push(i); // 将当前的右括号位置压入栈中,作为下一个"虚拟的"左括号位置
                } else { // 如果栈不为空,计算当前的括号子串长度
                    res = max(res, i - st.top());
                }
            }
        }
        return res; // 返回最长有效括号长度
    }
};

在代码中当判断到右括号时 栈st 先 pop 然后再进行判断. 有点神奇..

相关推荐
让学习成为一种生活方式几秒前
黄花蒿LHC基因家族的串联重复驱动扩张及其UV-B胁迫适应性--BMC Plant Biology
人工智能·算法·机器学习
Demon--hx4 分钟前
多态实现原理
开发语言·c++
ECT-OS-JiuHuaShan9 分钟前
共轭互逆链路论,彻底打击庸俗辩证法和不可知论
数据库·人工智能·算法·机器学习·数学建模
薛定e的猫咪11 分钟前
【大模型量化】使用 llama.cpp 完成量化、本地推理与服务化部署
人工智能·深度学习·算法·llama
薛定e的猫咪16 分钟前
【源码解读版】ContraBAR:用 CPC 对比学习替代变分推断做贝叶斯元 RL
人工智能·深度学习·学习·算法·机器学习
lzx_00219 分钟前
list(全)
数据结构·list
水饺编程40 分钟前
第5章,[Win32 章节] :绘制填充区域
c语言·c++·windows·visual studio
绿算技术1 小时前
大模型本地化的经济账:DeepSeek V4 Flash 部署实测
人工智能·科技·算法·spark
翟天保Steven1 小时前
用于提升CBCT低对比度组织分辨率的三维图像后处理方法
算法·计算机视觉·图像重建·图像后处理
FII工业富联科技服务1 小时前
GW级AI数据中心怎么建?Omniverse、CFD、液冷与BMS技术路径拆解
服务器·人工智能·算法·能源·制造