力扣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;
      }
  };
相关推荐
m0_706653237 小时前
模板编译期排序算法
开发语言·c++·算法
历程里程碑7 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
木井巳7 小时前
【递归算法】验证二叉搜索树
java·算法·leetcode·深度优先·剪枝
m0_561359677 小时前
嵌入式C++加密库
开发语言·c++·算法
近津薪荼7 小时前
优选算法——双指针专题7(单调性)
c++·学习·算法
j445566117 小时前
C++中的职责链模式实战
开发语言·c++·算法
m0_686041617 小时前
实时数据流处理
开发语言·c++·算法
波波侠87 小时前
代码随想录算法训练营打卡第31天|56. 合并区间、738.单调递增的数字
算法
Snow_day.7 小时前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
m0_561359677 小时前
C++模块接口设计
开发语言·c++·算法