题目描述
给出一个字符串,判断其中的左右圆括号是否匹配。
注:只需判断左右圆括号 ′(′ 和 ′)′。
输入
一行一个字符串,以字符@为结尾。
输出
若匹配,输出 YES,若不匹配,则输出 NO。
样例输入
a(cc())bbb()@
样例输出
YES
样例输入2
a(cc()bbb()@
样例输出2
NO
数据规模与约定
时间限制:1 s
内存限制:256 M
100% 的数据保证 字符串长度小于 300
#include<iostream>
#include<stack>
using namespace std;
int main() {
stack<char> sta;
char num[305];
cin >> num;
for (int i = 0; num[i] != '@'; i++) {
if (num[i] == '(') {
sta.push('(');
}
if(num[i] == ')') {
if (sta.empty()) {
cout << "NO" << endl;
return 0;
}
else {
sta.pop();
}
}
}
if (sta.empty()) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
return 0;
}