文章
15
粉丝
68
获赞
0
访问
8.0k
#include <bits/stdc++.h>
using namespace std;
int level(char a){
int level;
if(a=='<')level=1;
else if(a=='(')level=2;
else if(a=='[')level=3;
else if(a=='{')level=4;
else level=5;
return level;
}
int main(){
int n;
while(cin>>n){
string s;
while(n--){
cin>>s;
stack<char> st;
int flag=0;
for(int i=0;i<s.size();i++){
if(st.size()==0){
st.push(s[i]);
}else{
char top=st.top();
if(((top=='(')&&s[i]==')')||((top=='[')&&s[i]==']')||((top=='<')&&s[i]=='>')||((top=='{')&&s[i]=='}')){
st.pop();
}else{
if(level(top)>level(s[i])){
st.push(s[i]);
}else{
fl...
登录后发布评论
仔细翻阅了一下大佬的题解,理解了,{{}}判定也应该是通过的,题目样例并没有说明
所以只需要改成level(top)>=level(s[i])即可ac