九度oj题目1153:括号匹配问题
题目1153:括号匹配问题
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:4866
解决:2112
- 题目描述:
-
在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.
- 输入:
-
输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。
注意:cin.getline(str,100)最多只能输入99个字符!
- 输出:
-
对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。
- 样例输入:
-
)(rttyy())sss)(
- 样例输出:
-
)(rttyy())sss)( ? ?$
- 来源:
- 2010年北京大学计算机研究生机试真题
1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <queue> 5 #include <iostream> 6 using namespace std; 7 char s[105]; 8 struct node{ 9 int w; 10 char c; 11 }; 12 node stack[105]; 13 int main(){ 14 //freopen("D:\\INPUT.txt","r",stdin); 15 while(scanf("%s",s)!=EOF){ 16 int i,top=0; 17 18 //cout<<s<<endl; 19 20 for(i=0;i<strlen(s);i++){ 21 if(s[i]=='('){ 22 stack[top].c='('; 23 stack[top++].w=i; 24 25 //cout<<s[i]<<" "<<i<<" "<<top<<endl; 26 27 } 28 else{ 29 if(s[i]==')'){ 30 if(!top||stack[top-1].c!='('){//没有元素 31 stack[top].c=')'; 32 stack[top++].w=i; 33 } 34 else{ 35 top--; 36 } 37 } 38 } 39 } 40 cout<<s<<endl; 41 42 //cout<<top<<endl; 43 44 for(i=0;i<top;i++){ 45 if(stack[i].c==')'){ 46 s[stack[i].w]='?'; 47 } 48 else{ 49 s[stack[i].w]='$'; 50 } 51 } 52 //cout<<s<<endl; 53 for(i=0;i<strlen(s);i++){ 54 if(s[i]=='?'||s[i]=='$'){ 55 cout<<s[i]; 56 } 57 else{ 58 cout<<' '; 59 } 60 } 61 cout<<endl; 62 } 63 return 0; 64 }
转载于:https://www.cnblogs.com/Deribs4/p/4650688.html
九度oj题目1153:括号匹配问题相关推荐
- 【AC】九度OJ题目1153:括号匹配问题
题目描述: 在某个字符串(长度不超过100)中有左括号.右括号和大小写字母:规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配.写一个程序,找到无法匹配的左括号和右括 ...
- 九度OJ 题目1179:阶乘
/********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...
- 九度OJ 题目1069:查找学生信息 随笔
** 九度OJ 题目1069:查找学生信息 ** 题目描述如下: 输入N个学生的信息,然后进行查询. 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息 ...
- 九度OJ 题目1203:IP地址
/********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1203:IP地址 * 来源:http://ac. ...
- 九度OJ—题目1032:ZOJ
题目描写叙述: 读入一个字符串.字符串中包括ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出.当某个字符用完时,剩下的仍然依照ZOJ的顺序输出. 输入: 题目包括多组用例,每组用例占一行,包括ZOJ ...
- 九度oj 题目1411:转圈
题目描述: 在一个有向图有n个顶点(编号从1到n),给一个起点s,问从起点出发,至少经过一条边,回到起点的最短距离. 输入: 输入包括多组,每组输入第一行包括三个整数n,m,s(1<=n< ...
- 【WA】九度OJ题目1435:迷瘴
题目描述: 通过悬崖的yifenfei,又面临着幽谷的考验-- 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满了骷髅.由于此处长年不见天日,导致空气中布满了毒素,一旦吸入体内,便会全身溃烂而死. 幸好y ...
- 九度oj 题目1354:和为S的连续正数序列
题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...
- 九度oj 题目1376:最近零子序列
题目描述: 给定一个整数序列,你会求最大子串和吗?几乎所有的数据结构与算法都会描述求最大子串和的算法.今天让大家来算算最近0子串和,即整数序列中最接近0的连续子串和.例如,整数序列6, -4, 5, ...
最新文章
- C# GUID的使用
- 软件测试需要什么样的思维,你知道软件测试的核心价值是什么吗?为什么我们需要软件测试?...
- nGrinder性能测试平台搭建(LVS压力测试)
- JVM常用的参数配置
- Clion this file does not belong to any project target问题解决方案
- [渝粤教育] 中国地质大学 信息资源管理 复习题 (2)
- 301. Remove Invalid Parentheses
- sqlmap源码阅读系列检查是否满足依赖
- 频发:记ADG备库日志应用延迟的一次故障处理-云和恩墨技术通讯精选
- java建议:避免使用终结方法
- jquery中的页面加载方法load()
- 快速搭建一个本地FTP服务器
- vue pc移动两个html,vue一套代码适应移动端,pc端
- 远卓:数字化转型的精益化思考
- 迅捷fw325r虚拟服务器设置,迅捷FAST FW325R路由器无线桥接设置方法
- php把字体调大,phpDesigner 8调整字体大小的方法。
- postgresql division by zero
- MM-DD-RRRR / MM-DD-YYYY 的区别 (Date format)
- Java生成Excel同个表格内换行
- 第一次将项目push到gitlab
热门文章
- 集团性企业数据信息系统解决方案
- aiohttp保存MySQL_python链家网高并发异步爬虫asyncio+aiohttp+aiomysql异步存入数据
- python协程第一课(实现爬取自己博客)
- 扫描仪twain驱动是什么_建湖扫描仪卡纸一般多少钱
- unity scence灯光不显示_Unity基础教程系列(四)——多场景(Loading Levels)
- LeetCode Week 4:第 31 ~ 40 题
- 吝啬的国度(dfs)
- ~~spfa 算法(队列优化的Bellman-Ford算法)(附模板题)
- 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记
- 多目标跟踪——MOT算法的学习笔记