实现思路:
采用栈来实现括号比较,我们可以这样想,我们可以采用假设法,就是我们自己只采用左括号,先采用一个数组来存储输入的,然后采用栈来存储所需要的右括号,我还是上图吧,语言表达不清除
#include#include #include #define Max 1000 typedef struct Stack{ char data[Max]; int size=0; int top=-1; }; Stack s; char str[Max]; void createStack() { printf("请输入字符长度"); int m; scanf("%d",&m); printf("请输入带有的{,},(,),[,]括弧串:"); for(int i=0;i =0){ if(str[i]=='}'||str[i]==']'||str[i]==')'){ if(pop()!=str[i]){ m=0; break; } j--; } i--; } if(m&&!j){ printf("恭喜你"); }else{ printf("不要生气"); } } int main() { createStack(); init(); match(); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)