您的位置:首页 > 其它

HDU5831(水题,有一点容易忽略,导致一直WAWAWA)

2016-08-12 20:17 369 查看
http://acm.hdu.edu.cn/showproblem.php?pid=5831

从开始数,如果‘ ) ’的出现数量减去‘ ( ’大于等于3,则就不可能通过一次交换操作使得这多出来的三个‘ ) ’完全符合题目的要求字符串类别。于是我就直接写了,就WA了。不知错在何处!然后看了同学写的才考虑到了,'( )'这种情况是No,因为一次也不能交换,题目要求交换一次。


我的天吶...

#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> P;
typedef long long LL;
#define INF 0x3f3f3f3f
#define PI acos(-1)
#define MAX_N 10000
//#define LOCAL
int main()
{
#ifdef LOCAL
freopen("b:\\data.in.txt", "r", stdin);
#endif
int T; scanf("%d", &T);
while(T--)
{
int n;
scanf("%d", &n);
char a;
int cnt1 = 0, cnt2 = 0;
bool ans = 0;
if(n == 2)
{
char s[3];
for(int i = 0; i<2; i++)
{
cin >>s[i];
}
if(s[0] == ')' && s[1] == '(')
{
cout << "Yes" << endl;
}
else
cout << "No" << endl;
continue;
}
for(int i = 0; i < n; i++)
{
cin >> a;
if(a == '(')
cnt1++;
if(a == ')')
cnt2++;
if(cnt2 - cnt1 >= 3)
ans = 1;
}
if(cnt1 != cnt2)
ans = 1;
if(ans)
cout << "No" << endl;
else
cout << "Yes" << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐