acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解

    #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn=1e6+1;//节省空间 char c[maxn]; int len,st[maxn];//数组模拟栈 bool a[maxn];//由于只用0和1,所以采用bool,操作方便,且节省空间 int maximum(int a,int b){//自己写max更快 return a>b?a:b; } int main(){ int i,j,p=0,ans=0,sum=0,num=0; scanf("%s",c); len=strlen(c); for(i=0;i<len;i++){ if(c[i]'('){ p++; st[p]=i; } else{ if(p!=0){//栈是否为空,即是否有能匹配的 a[st[p]]=1; a[i]=1; p--; } } } for(i=0;i<=len;i++){ if(a[i]){ sum++; } else{ ans=maximum(ans,sum); sum=0; } } for(i=0;i<=len;i++){ if(a[i]){ sum++; } else{ if(sumans){ num++; } sum=0; } } if(ans==0){ cout<<"0 1"; } else{ cout<<ans<<' '<<num; } return 0; }

    userId_undefined

    滚吧c++

    倔强青铜
    8阅读
    0回复
    0点赞
  • 题解

    userId_undefined

    码农爱历史

    倔强青铜
    7阅读
    0回复
    0点赞
首页