- 仍然水博客
- 话说栈这个章节是和括号这东西杠上了吗?
- 还有,为什么我老是打错文章标题啊……笑哭
代码
- 啊……if打得头秃
- 复制粘贴大法好
- 最重要的是保证小的括号在大的括号里面
#include<bits/stdc++.h>
using namespace std;
int f[300],n,t=0;
int main()
{
cin>>n;
while(n--){
t=0;
memset(f,0,sizeof(f));
string s;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='{'&&f[t]<=1) f[++t]=1;
else if(s[i]=='['&&f[t]<=2) f[++t]=2;
else if(s[i]=='('&&f[t]<=3) f[++t]=3;
else if(s[i]=='<'&&f[t]<=4) f[++t]=4;
else if(s[i]=='>'&&f[t]==4) t--;
else if(s[i]==')'&&f[t]==3) t--;
else if(s[i]==']'&&f[t]==2) t--;
else if(s[i]=='}'&&f[t]==1) t--;
else{
t=-1;
break;
}
}
if(t==0)cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}