文章
11
粉丝
414
获赞
9
访问
108.3k
//括号匹配算法-- 栈的应用
#include <bits/stdc++.h>
using namespace std;
int main()
{
//初始化栈和字符数组
char stack[100];
int top = -1;
char s[100];
cin >> s;
for(int i = 0; i < strlen(s); ++i)
{
if(strlen(s) == 1)
{
cout << "NO";
return 0;
}
if(s[i] == '(' || s[i] == '[') //左括号入栈
stack[++top] = s[i];
//当为右括号时和栈中第一个元素比较匹配时
else if((stack[top] == '(' && s[i] == ')') ||
(stack[top] == '[' && s[i] == ']') )
top--;//出栈
else //为右括号时不匹配时
{
cout << "NO";
return 0;
}
}
cout << ((top == -1) ? "YES" : "NO");
return 0;
}
登录后发布评论
暂无评论,来抢沙发