简单
2025-07-23 11:09:23
发布于:浙江
0阅读
0回复
0点赞
#include <iostream>
#include <stack>
#include <string>
using namespace std;
bool is_matching_pair(char left, char right) {
return (left == '(' && right == ')') || (left == '[' && right == ']');
}
bool is_balanced(string expr) {
stack<char> s;
for (char c : expr) {
if (c == '@') break;
if (c == '(' || c == '[') {
s.push(c);
} else if (c == ')' || c == ']') {
if (s.empty()) {
return false;
}
char top = s.top();
s.pop();
if (!is_matching_pair(top, c)) {
return false;
}
}
}
return s.empty();
}
int main() {
string expr;
getline(cin, expr);
if (is_balanced(expr)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个