题目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:括号匹配问题相关推荐

  1. 【AC】九度OJ题目1153:括号匹配问题

    题目描述: 在某个字符串(长度不超过100)中有左括号.右括号和大小写字母:规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配.写一个程序,找到无法匹配的左括号和右括 ...

  2. 九度OJ 题目1179:阶乘

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...

  3. 九度OJ 题目1069:查找学生信息 随笔

    ** 九度OJ 题目1069:查找学生信息 ** 题目描述如下: 输入N个学生的信息,然后进行查询. 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息 ...

  4. 九度OJ 题目1203:IP地址

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1203:IP地址 * 来源:http://ac. ...

  5. 九度OJ—题目1032:ZOJ

    题目描写叙述: 读入一个字符串.字符串中包括ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出.当某个字符用完时,剩下的仍然依照ZOJ的顺序输出. 输入: 题目包括多组用例,每组用例占一行,包括ZOJ ...

  6. 九度oj 题目1411:转圈

    题目描述: 在一个有向图有n个顶点(编号从1到n),给一个起点s,问从起点出发,至少经过一条边,回到起点的最短距离. 输入: 输入包括多组,每组输入第一行包括三个整数n,m,s(1<=n< ...

  7. 【WA】九度OJ题目1435:迷瘴

    题目描述: 通过悬崖的yifenfei,又面临着幽谷的考验-- 幽谷周围瘴气弥漫,静的可怕,隐约可见地上堆满了骷髅.由于此处长年不见天日,导致空气中布满了毒素,一旦吸入体内,便会全身溃烂而死. 幸好y ...

  8. 九度oj 题目1354:和为S的连续正数序列

    题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ...

  9. 九度oj 题目1376:最近零子序列

    题目描述: 给定一个整数序列,你会求最大子串和吗?几乎所有的数据结构与算法都会描述求最大子串和的算法.今天让大家来算算最近0子串和,即整数序列中最接近0的连续子串和.例如,整数序列6, -4, 5, ...

最新文章

  1. C# GUID的使用
  2. 软件测试需要什么样的思维,你知道软件测试的核心价值是什么吗?为什么我们需要软件测试?...
  3. nGrinder性能测试平台搭建(LVS压力测试)
  4. JVM常用的参数配置
  5. Clion this file does not belong to any project target问题解决方案
  6. [渝粤教育] 中国地质大学 信息资源管理 复习题 (2)
  7. 301. Remove Invalid Parentheses
  8. sqlmap源码阅读系列检查是否满足依赖
  9. 频发:记ADG备库日志应用延迟的一次故障处理-云和恩墨技术通讯精选
  10. java建议:避免使用终结方法
  11. jquery中的页面加载方法load()
  12. 快速搭建一个本地FTP服务器
  13. vue pc移动两个html,vue一套代码适应移动端,pc端
  14. 远卓:数字化转型的精益化思考
  15. 迅捷fw325r虚拟服务器设置,迅捷FAST FW325R路由器无线桥接设置方法
  16. php把字体调大,phpDesigner 8调整字体大小的方法。
  17. postgresql division by zero
  18. MM-DD-RRRR / MM-DD-YYYY 的区别 (Date format)
  19. Java生成Excel同个表格内换行
  20. 第一次将项目push到gitlab

热门文章

  1. 集团性企业数据信息系统解决方案
  2. aiohttp保存MySQL_python链家网高并发异步爬虫asyncio+aiohttp+aiomysql异步存入数据
  3. python协程第一课(实现爬取自己博客)
  4. 扫描仪twain驱动是什么_建湖扫描仪卡纸一般多少钱
  5. unity scence灯光不显示_Unity基础教程系列(四)——多场景(Loading Levels)
  6. LeetCode Week 4:第 31 ~ 40 题
  7. 吝啬的国度(dfs)
  8. ~~spfa 算法(队列优化的Bellman-Ford算法)(附模板题)
  9. 【TGRS】Ship Detection in Large-Scale SAR Images Via Spatial Shuffle-Group Enhance Attention译读笔记
  10. 多目标跟踪——MOT算法的学习笔记