博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2009年西电计算机研究生复试上机题(3)
阅读量:4105 次
发布时间:2019-05-25

本文共 1362 字,大约阅读时间需要 4 分钟。

题目描述

请写一个程序,判断给定表达式中的括号是否匹配,表达式中的合法括号为”(“, “)”, “[", "]“, “{“, ”}”,这三个括号可以按照任意的次序嵌套使用。

 

输入

有多个表达式,输入数据的第一行是表达式的数目,每个表达式占一行。

 

输出
对每个表达式,若其中的括号是匹配的,则输出”yes”,否则输出”no”。

 

样例输入
4 [(d+f)*{}] [(2+3)) ()} [4(6]7)9
 

样例输出
yes no no no
 

提示 [+]

*** 提示已隐藏,点击上方 [+] 可显示 ***

 

来源

 

/*********************************  *    日期:2013-3-11 *    作者:SJF0115  *    题号: 天勤OJ 题目1219: Problem E *    来源:http://acmclub.com/problem.php?id=1219 *    结果:AC  *    来源:2009年西电计算机研究生复试上机题  *    总结: **********************************/ #include
#include
#include
#include
using namespace std;char array[1001];int main(){ int N,i,tag; while(scanf("%d",&N) != EOF){ //N组测试数据 while(N--){ stack
Stack; scanf("%s",array); for(i = 0;i < strlen(array);i++){ //只考虑括号,其他字符不用考虑 if(array[i] == '{' || array[i] == '}' || array[i] == '[' || array[i] == ']' || array[i] == '(' || array[i] == ')'){ //如果栈为空或者字符为{,[,(则入栈 if(Stack.empty() || array[i] == '{' || array[i] == '[' || array[i] == '('){ Stack.push(array[i]); } else{ //判断是否匹配 if((array[i] == '}' && Stack.top() == '{') || (array[i] == ']' && Stack.top() == '[') || (array[i] == ')' && Stack.top() == '(')){ Stack.pop(); } } }//if } if(!Stack.empty()){ printf("no\n"); } else{ printf("yes\n"); } }//while }//while return 0;}

转载地址:http://hzcsi.baihongyu.com/

你可能感兴趣的文章
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>
在JS中 onclick="save();return false;"return false是
查看>>
JSTL 常用标签总结
查看>>
内容里面带标签,在HTML显示问题,JSTL
查看>>
VS编译器运行后闪退,处理方法
查看>>
用div+css做下拉菜单,当鼠标移向2级菜单时,为什么1级菜单的a:hover背景色就不管用了?
查看>>
idea 有时提示找不到类或者符号
查看>>
JS遍历的多种方式
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>
c# 计算器
查看>>