提交时间:2023-08-22 16:22:21

运行 ID: 99362

#include<stdio.h> #include<string.h> #define Maxsize 10010 typedef char datatype; typedef struct{ datatype data[Maxsize]; int top; }Stack; void Init(Stack *S) { S->top=-1; } int Empty(Stack *S) { if(S->top==-1) return 1; else return 0; } int Push (Stack *S,datatype x) { if(S->top==Maxsize-1) return 0; else S->data[++(S->top)]=x; return 1; } void Pop(Stack *S, datatype *x) { *x=S->data[(S->top)]; S->top--; } void Top(Stack S,datatype *x) { *x=S.data[S.top]; } int kuohao(Stack *S,char *str) { Init(S); char e; int i=0; while(str[i]!='\0') { switch(str[i]) { case '(': case '{': case '[': Push(S,str[i]); break; case ')': Pop(S,&e); if(e!='(') return 0; break; case '}': Pop(S,&e); if(e!='{') return 0; break; case ']': Pop(S,&e); if(e!='[') return 0; break; default: break; } i++; } return Empty(S) ; } int main() { Stack S; char str[Maxsize]; int h, T; scanf("%d", &T); while(T--) { scanf("%s",str); h=kuohao(&S,str); if(h==0) printf("No\n"); else printf("Yes\n"); } return 0; }