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

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

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

Input

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

Output

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

Example Input

sin(20+10)
{[}]

Example Output

yes
no
利用栈的思想遇到({ [时进栈,遇到)] }就看栈顶元素与之是否匹配,匹配栈顶元素则出栈,否则 false 
#include  <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
int tag;
int match(char ST[],char ch,int &k)
{if(ch==')'&&ST[k]=='('||ch==']'&&ST[k]=='['||ch=='}'&&ST[k]=='{'){tag=1;k--;}elsetag=0;}
int main()
{char ch[52];while(gets(ch)){char ST[52];int k=-1;for(int i=0;ch[i]!='\0';++i){switch(ch[i]){case '(':case '[':case '{':ST[++k]=ch[i];break;case ')':case ']':case '}': match(ST,ch[i],k);break;}}if(tag&&k==-1)cout<<"yes"<<endl;elsecout<<"no"<<endl;}return 0;
}

下面的是刚开始写的忘记考虑 ( ) ( )这种情况了

#include  <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
int match(char ST[],int k)
{if(k==0||k%2!=0){cout<<"no"<<endl;return 0;}int j=k-1;int i;for(i=0;i<(k/2);i++){switch(ST[i]){case '(':if(ST[j]==')')j--;else{cout<<"no"<<endl;return 0;}break;case '[':if(ST[j]==']')j--;else{cout<<"no"<<endl;return 0;}break;case '{':if(ST[j]=='}')j--;else{cout<<"no"<<endl;return 0;}break;default :{cout<<"no"<<endl;return 0;}break;}}//if(i==k/2)cout<<"yes"<<endl;return 0;
}
int main()
{char ch[52];while(gets(ch)){char ST[52];int k=0;for(int i=0;ch[i]!='\0';++i){switch(ch[i]){case '(':case '[':case '{':case ')':case ']':case '}':ST[k++]=ch[i];break;}}ST[k]='\0';match(ST,k);}return 0;
}/***************************************************
User name: YT1658506207邵雪源
Result: Wrong Answer
Take time: 0ms
Take Memory: 204KB
Submit time: 2017-10-10 17:56:27
****************************************************/

sdut 2134 数据结构实验之栈与队列四:括号匹配相关推荐

  1. sdut 2088 数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  2. sdut 1479 数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九:行编辑器 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descript ...

  3. sdut 3335 数据结构实验之栈与队列八:栈的基本操作

    数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descri ...

  4. sdut 3333 数据结构实验之栈与队列六:下一较大值(二)

    数据结构实验之栈与队列六:下一较大值(二) Time Limit: 150MS Memory Limit: 8000KB Submit Statistic Discuss Problem Descri ...

  5. 数据结构实验之栈与队列四:括号匹配

    Description 给你一串字符,不超过50个字符,可能包括括号.数字.字母.标点符号.空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配. Input 输入数据有多组,处理到文件 ...

  6. SDUT-2449_数据结构实验之栈与队列十:走迷宫

    数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...

  7. sdut-3332 数据结构实验之栈与队列五:下一较大值(一)

    数据结构实验之栈与队列五:下一较大值(一) Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Desc ...

  8. SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式

    数据结构实验之栈与队列二:一般算术表达式转换成后缀式 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运 ...

  9. 2131数据结构实验之栈与队列一:进制转换

    数据结构实验之栈与队列一:进制转换 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入一个十进制非负整数,将其转换成对 ...

最新文章

  1. 代码管理和版本管理的作业流程以及规范是怎样的?
  2. 系统架构设计师考试知识点整理-4:死锁问题、银行家算法、管程与线程
  3. php 读取三级分类,php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?汗血宝马...
  4. cassandra_Spring Boot Cassandra的第一步
  5. 字典:散列表、散列字典、关键字列表、集合与结构体
  6. PyTorch 1.0 中文文档:torch.utils.checkpoint
  7. echart关系树状图_Echarts关系图-力引导布局
  8. 数组模拟加法(每日一练 11.30)
  9. 微信公开课讲师王泓渊:小游戏开放能力
  10. MATLAB基础篇——线性代数应用
  11. ios系统访问ftp服务器,ios系统访问ftp服务器
  12. 51CTO与我的大学生活
  13. 抖音一姐直播笑唱国歌被封,网友:早就该封了!
  14. HDU 6078Wavel Sequence
  15. Web3.0 使用说明书
  16. 大数据培训课程数据清洗案例实操-简单解析版
  17. FLAC文件格式详解
  18. 5_echo命令的作用
  19. Idea中取消自动导包顺序
  20. python获取二进制bit位_Python读字节某一位的值,设置某一位的值,二进制位操作...

热门文章

  1. 厦门“快捷贷”项目启动 最高可贷500万
  2. SharePoint优秀blog文章汇总
  3. mysql 平均日营业额_一条SQL语句中算日销售额和月销售额
  4. go 查看全局安装了哪些包_GO 文档笔记
  5. Unity_UIWidgets学习笔记03_组件_Container
  6. 阿里云centos7通过yum安装 Mysql 8.0.11
  7. 浅谈.NET中的类型和装箱、拆箱原理
  8. Linux获取毫秒级时间
  9. 识别强直性脊柱炎高效和疾病特定的基质改变
  10. 网络布线,多图、有细节,【炮哥】讲诉,值得无经验午饭手抄