我一直搜得都是C语言的代码,但是有大佬告诉我这是C++的
但是基本找不到C语言的题解来借鉴
#include<stdio.h>
#include<stdlib.h>
typedef struct N {
int size;
char* top;
char* base;
}N;
N CSH(N &l) {
l.top = l.base = new char[255];
l.size = 255;
return l;
}
int PUSH(N &l, char e) {
if (l.top - l.base == l.size) {
return 0;
}
*l.top++ = e;
return 1;
}
int POP(N &l) {
if (l.top == l.base) {
return 0;
}
else {
l.top--;
return 1;
}
}
int main() {
N l;
int b = 0;
l = CSH(l);
char a[300];
scanf("%s", a);
for(int i=0;a[i]!='@';i++){
if (a [i] == '(') {
PUSH(l, a[i]);
b++;
}
else {
if (a[i] == ')') {
if (b != 0) {
POP(l);
b--;//
}
else {
PUSH(l, a[i]);
}
}
}
}
if (l.top == l.base) {
printf("YES");
}
else {
printf("NO");
}
return 0;
}