hdu5831
题意:问交换两个位置能否使这些括号匹配;
复制航神代码,类似于递归思想
#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; }