码迷,mamicode.com
首页 > 其他好文 > 详细

hdu5831

时间:2016-08-11 20:39:36      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

题意:问交换两个位置能否使这些括号匹配;

复制航神代码,类似于递归思想

#define N (1<<17)
#include <bits/stdc++.h>

using namespace std;

int T,n;
char s[N];

int main()
{
    for(cin>>T;T--;)
    {
        int cur=0,mx=N,res=0;
        scanf("%d%s",&n,s);
        for(int i=0;i<n;i++)
            cur+=s[i]==(?1:-1,mx=min(mx,cur);
        if(n==2) res=cur==0&&mx<0;
        else res=cur==0&&mx>=-2;
        puts(res?"Yes":"No");

    }
    return 0;
}

 

hdu5831

标签:

原文地址:http://www.cnblogs.com/shimu/p/5762335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!