2 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; char s[N]; int sta[N]; bool pd(char c1, char c2) { if(c1=='(' && c2==')') return 1; else if(c1=='[' && c2==']') return 1; else if(c1=='{' && c2=='}') return 1; else return 0; } int main() { scanf("%s", s+1); int ans=0, tp=0; sta[++tp]=0; for(int i=1; s[i]; i++) { if(pd(s[sta[tp]], s[i])) tp--; else sta[++tp]=i; ans=max(ans, i-sta[tp]); } printf("%d\n", ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; char s[N]; int sta[N]; bool pd(char c1, char c2) { if(c1=='(' && c2==')') return 1; else if(c1=='[' && c2==']') return 1; else if(c1=='{' && c2=='}') return 1; else return 0; } int main() { scanf("%s", s+1); int ans=0, tp=0; sta[++tp]=0; for(int i=1; s[i]; i++) { if(pd(s[sta[tp]], s[i])) tp--; else sta[++tp]=i; ans=max(ans,i-sta[tp]); } printf("%d\n", ans); return 0; }
- 1
信息
- ID
- 1293
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 5
- 标签
- 递交数
- 170
- 已通过
- 61
- 上传者