数据结构实验之栈四:括号匹配
来源:互联网 发布:python 3程序开发指南 编辑:程序博客网 时间:2024/04/30 20:51
题目描述
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
输入
输入数据有多组,处理到文件结束。
输出
如果匹配就输出“yes”,不匹配输出“no”
示例输入
sin(20+10){[}]
示例输出
yesno
#include <stdio.h>#include <stdlib.h>#include<string.h>#include<malloc.h>#define STACK_INIT_SIZE 100 //存储空间初始分配量#define STACKINCREMENT 10//存储空间分配增量#define OK 1#define OVERFLOW -1#define ERROR -2typedef int SElemType;struct stack{ SElemType base;//栈底指针 char a[51]; SElemType top; //栈顶指针 int stacksize;//当前已分配的存储空间,以元素为单位}SqStack;int match(char c1,char c2)//判定两括号是否匹配;{ if((c1=='('&&c2==')')||(c1=='{'&&c2=='}')||(c1=='['&&c2==']')) return 1; else return 0;}
int matching(char *str)//指针变量str括号是否匹配;{ int i; char c; SqStack.top=-1;//栈顶元素的初始化; for(i=0;str[i]!=0;i++) { switch(str[i]) { case '(': case '{': case '[':SqStack.top++;SqStack.a[SqStack.top]=str[i];break;//左括号则进栈; case ')': case ']': case'}':c=SqStack.a[SqStack.top]; if(match(c,str[i]))//看括号是否匹配 SqStack.top--; else return 0; } } if(SqStack.top==-1)//是否全部匹配括号; return -1; else return 0;}
int main(){ int i; char str[51];//定义字符串; while(gets(str)) { i=matching(str); if(i!=0)//括号是否匹配; printf("yes\n"); else printf("no\n"); } return 0;}
0 0
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- P1005 矩阵取数游戏
- Android 自定义标题栏
- java单元测试覆盖率工具-clover
- java集合框架
- slf4j logback创建日志
- 数据结构实验之栈四:括号匹配
- tjut 5213
- 如何配置文件DSN
- 印刷电路板(PCB)的制作工艺流程
- Django上传文本文件
- thinkphp分页显示
- Android Studio 错误 com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
- JavaMail--基础类详解
- JDBC基础应用(数据库增删改查)