力扣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;
      }
  };
相关推荐
断剑zou天涯1 天前
【算法笔记】线段树SegmentTree
数据结构·笔记·算法
ULTRA??1 天前
各种排序算法时间复杂度分析和实现和优势
c++·python·算法·排序算法
sprintzer1 天前
12.06-12.15力扣分治法刷题
算法·leetcode
月明长歌1 天前
【码道初阶】【牛客BM30】二叉搜索树与双向链表:java中以引用代指针操作的艺术与陷阱
java·数据结构·算法·leetcode·二叉树·笔试·字节跳动
hoiii1871 天前
使用RPCA算法对图像进行稀疏低秩分解
人工智能·算法
yuuki2332331 天前
【C++】内存管理
java·c++·算法
刃神太酷啦1 天前
Linux 进程核心原理精讲:从体系结构到实战操作(含 fork / 状态 / 优先级)----《Hello Linux!》(6)
java·linux·运维·c语言·c++·算法·leetcode
一个不知名程序员www1 天前
算法学习入门---二叉树
c++·算法
玩具猴_wjh1 天前
面试问题相关回答
面试·职场和发展
小李小李快乐不已1 天前
数组&&矩阵理论基础
数据结构·c++·线性代数·算法·leetcode·矩阵