数据结构实验之栈四:括号匹配
题目描述
输入
输出
示例输入
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;
}
本文介绍了一个简单的括号匹配算法实现,通过使用栈来判断输入字符串中的括号是否正确配对。该算法适用于圆括号()、方括号[]及花括号{}
825

被折叠的 条评论
为什么被折叠?



