1 条题解

  • 2
    @ 2026-7-26 23:17:40
    #include <bits/stdc++.h>
    
    using namespace std;
    
    #define ll long long
    #define ld long double
    #define inf 0x3f3f3f3f
    #define endl '\n'
    
    int n,maxn;
    bool y=1;
    string s;
    int dp[3000007];
    
    int main(){
    	freopen("bracket.in","r",stdin);
    	freopen("bracket.out","w",stdout);
    	
    	cin>>s;
    	n=s.size();
    	s=" "+s;
    	
    	for(int i=1;i<=n;i++){
    		if(s[i]=='(') dp[i]=dp[i-1]+1;
    		else dp[i]=dp[i-1]-1;
    		maxn=max(maxn,dp[i]);
    		if(dp[i]<0){
    			y=0;
    			break;
    		}
    	}
    	if(!(y&&dp[n]==0)){
    		cout<<-1;
    		return 0;
    	}
    	
    	cout<<n-maxn*2;
    
    	return 0;
    }
    

    信息

    ID
    3584
    时间
    2000ms
    内存
    512MiB
    难度
    7
    标签
    (无)
    递交数
    61
    已通过
    12
    上传者