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

来源:互联网 发布:手机手柄连接软件 编辑:程序博客网 时间:2024/06/10 04:09

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

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

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

输入

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

输出

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

示例输入

sin(20+10){[}]

示例输出

yesno

提示

 

来源

ma6174

示例程序

 
#include<stdio.h>  #include<string.h>  struct node  {      char data[100];      int top;  }S1;  int main()  {      int i,j,n,m,k,t;      char a[100];      while(gets(a)!=NULL)      {          S1.top=-1;          n=strlen(a);          k=0;      for(i=0;i<n;i++)      {          if(a[i]=='('||a[i]=='{'||a[i]=='[')              {                  S1.top++;                  S1.data[S1.top]=a[i];              }              else if(a[i]==')')              {                  if(S1.data[S1.top]+1==')')                      S1.top--;                      else                      {                          k=1;                          break;                      }              }              else if(a[i]==']')              {                  if(S1.data[S1.top]+2==']')                      S1.top--;                      else                      {                          k=1;                          break;                      }              }              else if(a[i]=='}')              {                  if(S1.data[S1.top]+2=='}')                      S1.top--;                      else                      {                          k=1;                          break;                      }              }      }      if(k==1||S1.top!=-1)          printf("no\n");      else          printf("yes\n");      }  }  

0 0
原创粉丝点击