题解
2023-08-16 10:56:18
发布于:浙江
0阅读
0回复
0点赞
#include <iostream>
using namespace std;
bool push(char data[], int& top, char c) {
if (top < 255) {
data[++top] = c;
return true;
}
return false;
}
char pop(char data[], int& top) {
if (top >= 0) {
return data[top--];
}
return '\0';
}
bool no(int top) {
return top == -1;
}
bool hanshu(const string& n) {
char data[255];
int top = -1;
for (size_t i = 0; i < n.length(); ++i) {
if (n[i] == '(') {
if (!push(data, top, '(')) {
return false;
}
} else if (n[i] == ')') {
if (no(top) || pop(data, top) != '(') {
return false;
}
}
}
return no(top);
}
int main() {
string n;
getline(cin, n);
if (hanshu(n)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个