文章

3

粉丝

40

获赞

1

访问

1.6k

头像
括号匹配 题解:巧用栈简单解法
P1501 西北工业大学2015机试题
发布于2024年3月12日 11:33
阅读数 383

#include <iostream>
#include <stack>
#include <string>
using namespace std;

int main(){
	stack<char> c;
	string s;
	cin >> s;
	for(int i = 0;i < s.size();i++)
	{
		if(s[i] == '(' || s[i] == '[' )
		{
			c.push(s[i]);
		}
		else if(s[i] == ']')
		{
			if(!c.empty() && c.top() == '[') c.pop();
			else c.push(s[i]);
		}
		else if(s[i] == ')')
		{
			if(!c.empty() && c.top() == '(') c.pop();
			else c.push(s[i]);
		}
	}
	if(c.empty()) printf("YES");
	else printf("NO");
	return 0;
}

记得在出栈时判断栈是否为空,否则runtime error

 

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发