题目链接:括号匹配问题
思路: 栈的应用:
遇到左括号入栈
遇到右括号,栈空则跳出循环,反之比较栈顶元素是否匹配,不匹配跳出循环
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[500];
cin>>s;
stack <char> p;
int ls=strlen(s),i;
bool flag=true;
for(i=0;i<ls;i++)
{
if(s[i]=='['||s[i]=='(')
p.push(s[i]);
else
{
if(p.empty())
{
cout<<"NO";
flag=false;
break;
}
else
{
if((s[i]==']'&&p.top()=='[')||(s[i]==')'&&p.top()=='('))
p.pop();
}
}
}
if(flag)
{
if(p.empty())
cout<<"YES";
else
cout<<"NO";
}
return 0;
}
来源:CSDN
作者:Hha23333
链接:https://blog.csdn.net/qq_46057644/article/details/104340540