数据结构实验之栈四:括号匹配
题目描述
输入
输出
示例输入
sin(20+10){[}]
示例输出
yes
no
注意:串中可能包含空格(之前提交wa,没看到这句,用scanf输入。。。 orz)。
#include<stdio.h>
int main()
{
int i,top,a;
char s[100],str[100];
while(gets(s))
{
top=-1;
for(i=0;s[i]!='\0';i++)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[')
{
str[++top]=s[i];
}
else if(s[i]==')'||s[i]=='}'||s[i]==']')
{
a=str[top];
top--;
if(a=='('&&s[i]==')'||a=='{'&&s[i]=='}'||a=='['&&s[i]==']')
;
else break;
}
}
if(s[i]=='\0'&&top==-1) printf("yes\n");
else printf("no\n");
}
return 0;
}