数据结构实验之栈四:括号匹配

来源:互联网 发布:网络连接有个感叹号 编辑:程序博客网 时间:2024/05/06 17:19

数据结构实验之栈四:括号匹配

Time Limit: 1000MS Memory limit: 65536K

题目描述

 给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。

输入

 输入数据有多组,处理到文件结束。

输出

 如果匹配就输出“yes”,不匹配输出“no”

示例输入

sin(20+10){[}]

示例输出

yesno

提示
#include<stdio.h>#include<string.h>char a[100];main(){    char *p,*q;    while(gets(a)!=NULL)    {        p=a;        while(p<=a+strlen(a))        {            int t=1;            if(*p=='('||*p=='['||*p=='{')            {                q=p+1;                while(q<=a+strlen(a))                {                    if(*q==')'||*q=='}'||*q==']'||*q=='('||*q=='['||*q=='{')                    {                        if((*p=='('&&*q==')')||(*p=='{'&&*q=='}')||(*p=='['&&*q==']'))                        {                            *p='0';                            *q='0';                            p=a;                            t=0;                            break;                        }                         else                            break;                    }                    q++;                }            }            if(t)            p++;        }        int i;        int flag=0;        for(i=0;i<strlen(a);i++)        {            if(a[i]=='('||a[i]=='['||a[i]=='{'||a[i]==')'||a[i]=='}'||a[i]==']'){                printf("no\n");                flag=1;                break;            }        }        if(!flag)            printf("yes\n");    }}

0 0
原创粉丝点击