/* 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 */ #include<stdio.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<string.h> #include <iostream> typedef struct Stack{ int top; char index[1000]; }; /*入栈*/ void stack_push(char e,struct Stack *stack){ stack->top++; stack->index[stack->top]=e; } /*出栈*/ void stack_pop(struct Stack *stack){ stack->top--; } /*栈顶*/ char stack_top(struct Stack *stack){ return stack->index[stack->top]; } /*是否为空*/ bool stack_empty(struct Stack *stack){ if(stack->top==-1) return 1; return 0; } bool isValid(char * s){ int i=0; char c; struct Stack *stack; stack=(struct Stack*)malloc(sizeof(struct Stack)); stack->top=-1; if(s==NULL||s[i]=='