扩号匹配问题(信息学奥赛一本通-T1203)
【题目描述】
在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注。
【输入】
输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。
【输出】
对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。
【输入样例】
((ABCD(x)
)(rttyy())sss)(【输出样例】
((ABCD(x)
$$
)(rttyy())sss)(
? ?$
【源程序】
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define PI acos(-1.0)
#define E 1e-9
#define INF 0x3f3f3f3f
#define LL long long
const int MOD=1000000007;
const int N=10000+5;
const int dx[]= {-1,1,0,0};
const int dy[]= {0,0,-1,1};
using namespace std;
char a[101],b[101];
stack<int> S;
int main(){while(cin>>a){int len=strlen(a);for(int i=0;i<len;i++){if(a[i]=='('){S.push(i);b[i]=' ';}else if(a[i]==')'){if(!S.empty())//栈不为空{S.pop();b[i]=' ';}elseb[i]='?';}elseb[i]=' ';}while(!S.empty())//栈不为空{b[S.top()]='$';S.pop();}b[len]='\0';cout<<a<<endl;cout<<b<<endl;}return 0;
}
扩号匹配问题(信息学奥赛一本通-T1203)相关推荐
- 表达式括号匹配(信息学奥赛一本通-T1353)
[题目描述] 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配, ...
- 信息学奥赛一本通 1203:扩号匹配问题 | OpenJudge 2.2 2705:扩号匹配问题
[题目链接] ybt 1203:扩号匹配问题 OpenJudge 2.2 2705:扩号匹配问题 [题目考点] 1. 递归 2. 栈 [解题思路] 解法1:递归 设sign字符数组,各元素初始值都是空 ...
- 信息学奥赛一本通(1203:扩号匹配问题)
1203:扩号匹配问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 7154 通过数: 3817 [题目描述] 在某个字符串(长度不超过100)中有左括 ...
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 信息学奥赛一本通在线提交地址
信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...
- 信息学奥赛一本通 1358:中缀表达式值(expr)
[题目链接] ybt 1358:中缀表达式值(expr) [题目考点] 1. 表达式求值 中缀表达式转后缀表达式 后缀表达式求值 [解题思路] 由于题目要求做中缀表达式转为后缀表达式,而后求值.那么这 ...
- 信息学奥赛一本通C++语言-----1120:同行列对角线的格
[题目描述] 输入三个自然数nn,ii,j(1≤i≤n,1≤j≤n)j(1≤i≤n,1≤j≤n),输出在一个n×nn×n格的棋盘中(行列均从11开始编号),与格子(ii,jj)同行.同列.同一对角线的 ...
最新文章
- 面试官:你能说说事务的几个特性是啥?有哪几种隔离级别?
- Centos 6.4 PPTP ×××搭建
- Ubuntu使用PBIS认证
- 【错误记录】Android 可执行权限报错 ( Cannot run program “/data/user/0/cn.e/ffmpeg“: error=13,Permission denied )
- 用户体验设计案例分析
- 如何将 Linq 的查询结果转为 HashSet ?
- 用python解决生活问题_Python解决生活问题之闹钟程序的实现
- 内推 | 无人驾驶~小马智行Pony.ai 2020
- 设计php框架_PHP微型框架设计
- php 动态修改函数,php – 动态调用函数
- vue展示日历 考勤展示_vue实现简单的日历效果
- bt709和srgb_选择用于多用途视频编辑和色彩校正的显示器— sRGB,DCI-P3,REC 709
- 停车场管理系统软件详细设计说明书
- 梭子鱼网络:2018年网络安全威胁预测
- 通过同花顺股票程序化交易接口的止损方法有哪些?
- lcd和oled的区别哪个好
- cosolog打印带样式的文字及图片
- adb的问题“No command ‘adb’ found, did you mean:”
- 将12小时制改为24小时制
- tar无法解压bz2压缩包问题