文章

27

粉丝

0

获赞

80

访问

2.4k

头像
括号匹配2 题解:
P1838 南京理工大学/暨南大学2023年机试题
发布于2026年2月24日 17:23
阅读数 25

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

bool isMatch(char left,char right){
	return 	left=='{'&&right=='}'||
  			left=='['&&right==']'||left=='<'&&right=='>'
  			||left=='('&&right==')';
}

int main(){
	string str;
	cin>>str;
	stack<char> sta;
	for(char c:str){
		if(c=='('||c=='['||c=='<'||c=='{')sta.push(c);
		else {
			if(sta.empty()||!isMatch(sta.top(),c)){
				cout<<"no";
				return 0;
			} 
			sta.pop();
		}
	}
	if(sta.empty())cout<<"yes";
	else cout<<"no";
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发