牛客OI赛制测试赛2 E :括号序列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37960603/article/details/82497186

题目传送门
贪心
代码:

#include<bits/stdc++.h>
using namespace std;

const int maxn=5000000+100;

char ch[maxn];
int ph[maxn];

int main(){

    int n;
    scanf("%d",&n);
    getchar();
    int tot=0;
    int ans=0;
    int ci=0;
    for(int i=1;i<=n;i++){

        scanf("%c",&ch[i]);
        if(ch[i]=='(') ph[tot++]=i;
    }
    for(int i=1;i<=n;i++){

        if(ch[i]=='(') ans++;
        else{

            ans--;
            if(ans<0) ans+=2,ci++,swap(ch[i],ch[ph[--tot]]);
        }
    }
    printf("%d\n",ci);
}

猜你喜欢

转载自blog.csdn.net/qq_37960603/article/details/82497186