力扣32.最长有效括号

力扣32.最长有效括号

cpp 复制代码
  class Solution {
  public:
      int longestValidParentheses(string s) {
          int n = s.size();
          int res=0;
          int start = -1;
          vector<int> st;
          for(int i=0;i<n;i++)
          {
              if(s[i] == '(')
                  st.push_back(i);
              else
              {
                  //前面没有( , (开启下一段)下一段的开始更新为当前下标
                  if(st.empty())
                      start = i;
                  else
                  {
                      //有(先弹出
                      st.pop_back();
                      //如果前面在(了,说明上一次不匹配的)之后的所有括号全部匹配完
                      if(st.empty())
                          res = max(res,i - start);
                      //上一次不匹配的)之后还有(剩余 这一段现在只能取到(的下标
                      else
                          res = max(res,i - st.back());
                  }
              }
          }
          return res;
      }
  };
相关推荐
mjhcsp13 小时前
莫比乌斯反演总结
c++·算法
爱编码的傅同学14 小时前
【今日算法】LeetCode 25.k个一组翻转链表 和 43.字符串相乘
算法·leetcode·链表
stolentime14 小时前
P14978 [USACO26JAN1] Mooclear Reactor S题解
数据结构·c++·算法·扫描线·usaco
老歌老听老掉牙14 小时前
差分进化算法深度解码:Scipy高效全局优化实战秘籍
python·算法·scipy
CSDN_RTKLIB14 小时前
C++多元谓词
c++·算法·stl
LYS_061814 小时前
寒假学习(2)(C语言2+模数电2)
c语言·学习·算法
listhi52014 小时前
压缩感知信号重构的块稀疏贝叶斯学习(BSBL)算法:原理、实现与应用
学习·算法·重构
摸个小yu14 小时前
【力扣LeetCode热题h100】哈希、双指针、滑动窗口
算法·leetcode·哈希算法
aloha_78915 小时前
乐信面试准备
java·spring boot·python·面试·职场和发展·maven
短剑重铸之日15 小时前
《RocketMQ研读》面试篇
java·后端·面试·职场和发展·rocketmq