数据结构实验之栈与队列四:括号匹配
来源:互联网 发布:注册淘宝号 编辑:程序博客网 时间:2024/06/01 20:08
Problem Description
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。
Input
输入数据有多组,处理到文件结束。
Output
如果匹配就输出“yes”,不匹配输出“no”
Example Input
sin(20+10){[}]
Example Output
yesno
code:
#include<stdio.h>#include<stdlib.h>#include<string.h>#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#define OVERLOAD -2#define ERROR 0#define OK 1typedef char ElemType;typedef struct { ElemType *base; ElemType *top; int stacksize;}Sqstack;void InitStack(Sqstack &s)//初始化栈{ s.base = (ElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType)); if(!s.base) { exit(OVERLOAD); } s.top = s.base; s.stacksize = STACK_INIT_SIZE;}int GetTop(Sqstack s, ElemType &e){ if(s.top == s.base) return ERROR; e = *(s.top-1); return OK;}void Push(Sqstack &s, ElemType e)//入栈{ if(s.top-s.base>=s.stacksize) { s.base = (ElemType*)realloc(s.base, (s.stacksize+STACKINCREMENT)*sizeof(ElemType)); if(!s.base) exit(OVERLOAD); s.top = s.base+s.stacksize; s.stacksize+=STACKINCREMENT; } *s.top++ = e;}int Pop(Sqstack &s, ElemType &e)//出栈,并将元素赋给e{ if(s.top == s.base) return ERROR; e = *--s.top; return OK;}int main(){ Sqstack li; InitStack(li); char s[55]; int i; char e; while(gets(s)) { InitStack(li); int flag = 1; for(i = 0;i<strlen(s);i++) { if(s[i] == '('||s[i] == '['||s[i] == '{') { Push(li, s[i]); } else if(s[i] == ')'||s[i] == ']'||s[i] == '}') { if (GetTop(li, e) == ERROR) { flag = 0; break; } if(e==s[i]-1||e==s[i]-2) { Pop(li, e); } else { flag = 0; break; } } } if(GetTop(li, e)!=ERROR) flag = 0; if(flag) printf("yes\n"); else printf("no\n"); }}
阅读全文
0 0
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 2134-数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配
- sdut 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈与队列四:括号匹配 sdut-oj
- SDUT 2134 数据结构实验之栈与队列四:括号匹配
- 数据结构实验之栈四:括号匹配
- 数据结构实验之栈四:括号匹配
- 计算1 / 1
- 前端知识整理之CSS命名(BEM)
- ubuntu解压rar文件
- qq主页面
- 顺序表应用6:有序顺序表查询
- 数据结构实验之栈与队列四:括号匹配
- 鼠标离开事件集
- Linux学习(二十一):线程
- ORA-12519: TNS:no appropriate service handler found 解决
- aa
- Android Studio 插件开发详解二:工具类
- Javascript闭包(Closure)理解
- pom文件报错web.xml is missing and <failOnMissingWebXml> is set to true
- Python初步实现车道线检测