文章

11

粉丝

414

获赞

9

访问

108.3k

头像
//括号匹配算法-- 栈的应用
P1501 西北工业大学2015机试题
发布于2020年8月10日 23:39
阅读数 8.6k

//括号匹配算法-- 栈的应用 
#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;
} 

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发