保持冷静,保持清醒

注意:空行要输出Yes,要用gets读函数,这道题让我学会了gets和scanf函数除了空格问题之外还是

有区别的,scanf把空格,Tab, 回车都视为结束标志,不会读入他们,后面自动加’\0’,所以空格,回车,Tab

都在缓冲区,可以用getchar()读取到,但是gets()函数虽然也将回车视为结束标志,但是他们会将回车读

入,读到字符串里是’\0’,,所以,他们就不会存在缓冲区里,也就是说用getchar()读取不到他们了。。。

放代码:

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<stack>using namespace std;char a[130];int main(){stack <char> s;int n,flag,i;char ch;scanf("%d",&n);getchar();while(n–){flag=1;gets(a);//scanf("%s",a);if(a[0]=='\0'){puts("Yes");continue;}flag=0;int len = strlen(a);for(i=0; i<len; i++){if(a[i]=='('||a[i]=='['){s.push(a[i]);}else{if(s.empty()){puts("No");flag=1;break;}else{ch = s.top();s.pop();if(a[i]==')'){if(ch!='('){puts("No");flag=1;break;}}else{if(ch!='['){puts("No");flag=1;break;}}}}}if(!flag){if(s.empty())puts("Yes");elseputs("No");}while(!s.empty()){s.pop();}}}

怎么能研究出炸药呢?爱迪生不经历上千次的来自失败,怎么能发明电灯呢

保持冷静,保持清醒

相关文章:

你感兴趣的文章:

标签云: