| 比赛 |
?板子大赛 |
评测结果 |
AAWWW |
| 题目名称 |
括号匹配 |
最终得分 |
40 |
| 用户昵称 |
wzh |
运行时间 |
0.718 s |
| 代码语言 |
C++ |
内存使用 |
9.16 MiB |
| 提交时间 |
2026-01-17 12:41:47 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n;
string s;
stack<char>st;
map<char,int>mp,mp1;
int main(){
freopen("kakko.in","r",stdin);
freopen("kakko.out","w",stdout);
cin.tie(0);
ios::sync_with_stdio(0);
cin>>n;
mp['(']=1,mp['[']=1,mp['{']=1,mp['<']=1,mp['/']=1,mp['#']=2,mp['@']=4,mp['?']=8;
mp1[')']=1,mp1[']']=1,mp1['}']=1,mp1['>']=1,mp1['\\']=1,mp1['*']=2,mp1['&']=4,mp1['!']=8;
while(n--){
cin>>s;int l=s.size(),maxx=0,sum=0,ck=1,ppp=0,l1=0,r1=0;
while(!st.empty()) st.pop();
for(int i=0;i<l;i++){
if(mp1[s[i]]>=1){
r1++;
maxx=max(maxx,sum);
sum=0;
if(st.empty()){
// cout<<"!!!!";
cout<<"FALSE\n";
ck=0;
break;
}
if(s[i]==')'&&st.top()=='('||st.top()=='/'||mp[st.top()]>1){
st.pop();ppp++;
// cout<<st.top()<<' '<<st.size()<<endl;
}
else if(s[i]==']'&&st.top()=='['||st.top()=='/'||mp[st.top()]>1){
st.pop();ppp++;
// cout<<st.top()<<' '<<st.size()<<endl;
}
else if(s[i]=='}'&&st.top()=='{'||st.top()=='/'||mp[st.top()]>1){
st.pop();ppp++;
// cout<<st.top()<<' '<<st.size()<<endl;
}
else if(s[i]=='>'&&st.top()=='<'||st.top()=='/'||mp[st.top()]>1){
st.pop();ppp++;
// cout<<st.top()<<' '<<st.size()<<endl;
}
else if(s[i]=='\\'||mp1[s[i]]>1){
st.pop();ppp++;
// cout<<st.top()<<' '<<st.size()<<endl;
}
else{
// cout<<"!!!"<<s[i]<<i<<st.top();
cout<<"FALSE\n";
ck=0;break;
}
}
else if(mp[s[i]]>=1){
l1++;
for(int k=1;k<=mp[s[i]];k++)
st.push(s[i]),sum++;
}
}
if(ck){
// cout<<st.size()<<' '<<ppp<<' '<<l1<<' '<<r1<<endl;
// while(!st.empty()){
// cout<<st.top();
// st.pop();
// }
// cout<<' ';
cout<<"TRUE "<<maxx<<' ';
int res=0,l2=0;
for(int i=0;i<l;i++){
if(mp[s[i]]) l2+=mp[s[i]];
else if(l2==maxx){
res++;
if(i+1!=l&&mp[s[i+1]]>=1&&mp[s[i-1]]>=1){
l2--;
}else{
l2=0;
}
}
else l2=0;
}
cout<<res<<endl;
}
}
return 0;
}