数据结构实验之栈四:括号匹配
Time Limit: 1000MS Memory limit: 65536K
题目描述
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
输入
输入数据有多组,处理到文件结束。
输出
如果匹配就输出“yes”,不匹配输出“no”
示例输入
sin(20+10)
{[}]
示例输出
yes
no
提示
#include<stdio.h>
#include<stdlib.h>
int main()
{
char list[50];
int i=0,f=1;//f为1或0;
char ch;
ch=getchar();
while(ch!='\n')
{
switch(ch){
case '(':
case '[':
case '{':list[i++]=ch;break;
case ')':if(i==0||list[--i]!='(') f=0;break;
case ']':if(i==0||list[--i]!='[') f=0;break;
case '}':if(i==0||list[--i]!='{') f=0;break;
}
if(f==0) break;
ch=getchar();
}
if(f==1&&i==0) printf("yes\n");
else printf("no\n");
return 0;
}