Leetcode 最长有效括号

    技术2025-04-18  6

    利用括号匹配的算法以及栈,就可以算出匹配序列,然后利用两个变量记录有效括号的起始值与结束值,就可以得到最长有效括号。

    #include<stdio.h> #include<iostream> using namespace std; #include<stack> int visit1[100000]; class Solution { public: int longestValidParentheses(string s) { int len = s.size(); int maxn=0; char a; // printf("%d",len); for(int i=0;i<len;i++){ visit1[i]=0; } stack<int> stack1; for(int i=0;i<len;i++){ if(s[i]==')'&&stack1.empty()== false){ a=stack1.top(); printf("%d",stack1.top()); visit1[stack1.top()]=1; stack1.pop(); visit1[i]=1; } else if(s[i]=='('){ stack1.push(i); // printf("%dh",i); } if(i==len &&stack1.empty()==false){ return 0; } } int cnt =0; int pre,last,prel; for(int j=0;j<len;j++){ if(visit1[j]==1){ cnt= cnt+1; } else{ cnt = 0; pre = j+1; } if(cnt >maxn){ maxn = cnt ; last = j; prel =pre; } } printf("%d",maxn); return maxn; } };
    Processed: 0.010, SQL: 9