力扣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;
      }
  };
相关推荐
无限进步_5 小时前
【C语言&数据结构】对称二叉树:镜像世界的递归探索
c语言·开发语言·数据结构·c++·git·算法·visual studio
星辞树6 小时前
揭秘阿里 DIN:当深度学习遇上“千物千面”
算法
刘立军6 小时前
如何选择FAISS的索引类型
人工智能·算法·架构
小芒果_016 小时前
整理归并排序
c++·算法·排序算法·信息学奥赛
牛三金6 小时前
匿踪查询沿革-Private Information Retrieval(PIR)
算法·安全
德育处主任6 小时前
『NAS』在群晖部署一个文件加密工具-hat.sh
前端·算法·docker
星辞树6 小时前
从 L1/L2 到 Dropout:深度解析正则化,为何推荐系统“只能练一次”?
算法
玖剹6 小时前
队列+宽搜(bfs)
数据结构·c++·算法·leetcode·宽度优先
mit6.8246 小时前
01bfs|前缀和的前缀和
算法
wen__xvn6 小时前
代码随想录算法训练营DAY11第五章 栈与队列part02
算法