文章
19
粉丝
98
获赞
3
访问
9.9k
#include <bits/stdc++.h>
using namespace std;
int main()
{
stack <char> mystack;
char s[1000];
int tag=0;
scanf("%s",s);
int len=strlen(s);
for(int j=0;j<len;j++)
{
if(s[j]=='('||s[j]=='[')
mystack.push(s[j]);
if(s[j]==')'||s[j]==']')
{ char c=mystack.top();
if(c=='('){if(s[j]==')')mystack.pop();else{tag=1;break;}}
if(c=='['){if(s[j]==']')mystack.pop();else{tag=1;break;}}
}
}
if(tag==1) printf("NO");
else printf("YES");
return 0;
}
登录后发布评论
没有考虑到既不是(),也不是[ ]的情况
例如{[]()}
栈顶元素出栈的时候,先判断是否为空