标签:des style class blog code color
sin(20+10) {[}]
yes no
我的分析:运用栈的思想,读到左边的括号,就把它推进栈里面去,如果遇到的是右边的括号,就让当前读到的括号和栈顶的元素括号进行匹配。
如果匹配的上,就将栈的数字指针往后移一位(理论上应该将栈顶元素出栈,介于我的技术,我利用的是指针移位)。如果没有匹配上,
直接跳出循环,printf("no\n");
#include <stdio.h> #include <string.h> char s[100], e=0; void main() { int i, f; int len; char a[100]; while(gets(a)!=NULL) { f = 1; e = 0; len = strlen(a); for(i=0; i<len; i++) { if(a[i]==‘{‘ || a[i]==‘[‘ || a[i]==‘(‘) { s[e++] = a[i]; } if(a[i]==‘)‘) { if(e==0) { f=0; break; } if(e>0 && s[e-1]==‘(‘) { e = e-1; } else if(e>0 && s[e-1]!=‘(‘) { f=0; break; } } if(a[i]==‘]‘) { if(e==0) { f=0; break; } if(e>0 && s[e-1]==‘[‘) { e = e-1; } else if(e>0 && s[e-1]!=‘[‘) { f=0; break; } } if(a[i]==‘}‘) { if(e==0) { f=0; break; } if(e>0 && s[e-1]==‘{‘) { e = e-1; } else if(e>0 && s[e-1]!=‘{‘) { f=0; break; } } } if(f==0 || e>0) printf("no\n"); else if(e==0) printf("yes\n"); } }
标签:des style class blog code color
原文地址:http://www.cnblogs.com/yspworld/p/3789834.html