0
点赞
收藏
分享

微信扫一扫

数据结构,问题 D: 括号匹配

q松_松q 2024-11-06 阅读 12

题目描述

现在有一组括号,请你判断括号是否匹配

输入

输入一行字符串,只包含’(‘ ’)’这2种字符,保证不输入空字符串

输出

输出YES或者NO,表示括号是否匹配

样例输入 复制

(()()) ())(

样例输出 复制

YES NO

题解
#include<bits/stdc++.h>
using namespace std;

stack<char> st;


int main(){
	string s;
	while(cin >> s){
		bool flag = false;
		for(char c : s){
			if(c == '(')st.push(c);
			else if(c == ')'){
				if(!st.empty()){
					st.pop();
				}else flag = true;
			}
		}
		if(!st.empty() || flag)cout << "NO" << '\n';
		else cout << "YES" << '\n';
		stack<char> ().swap(st);
		s.clear();
	}
	return 0;
}
技巧
  • 清空字符串
s.clear();
  • 清空栈
stack<int> ().swap(st);
举报

相关推荐

0 条评论