括号匹配问题——栈

Posted marybubble

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了括号匹配问题——栈相关的知识,希望对你有一定的参考价值。

南阳理工学院oj题解

 

//括号匹配问题

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<stack>
using namespace std;
int main()
{
int k, flag = 1;
char c,*q;
char s[10010];
scanf("%d",&k);
getchar();
for (int i = 0; i < k; i++)
{
stack<char>a;
flag = 1;
int j = 0;
while (scanf("%c", &c)!=EOF&&c!=‘\n‘)
{
s[j++] = c;
}
for (int i = 0; i < j; i++)
{
if (s[i] == ‘(‘ || s[i] == ‘[‘)
{
a.push(s[i]);
}
else if (s[i] == ‘)‘ || s[i] == ‘]‘)
{
if (a.empty())
{
flag = 0;
break;
}
if (s[i] == ‘)‘&&a.top() == ‘(‘)
a.pop();
else if (s[i] == ‘]‘&&a.top() == ‘[‘)
a.pop();
else
{
flag = 0;
break;
}
}
}
if (flag == 1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}

以上是关于括号匹配问题——栈的主要内容,如果未能解决你的问题,请参考以下文章

用栈实现括号匹配的检验

栈应用之 括号匹配问题(Python 版)

数据结构栈的应用——括号匹配问题

括号匹配[栈]

栈:WHT解决括号匹配问题

jzyzoj 栈——P1148:括号匹配加强版