信息学奥赛一本通1203:扩号匹配问题(栈)

信息学奥赛一本通C++语言——1203:扩号匹配问题 【题目描述】 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$“标注,不能匹配的右括号用”?"标注。 【输入】 输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,... 阅读详情

先说一件事

开学了,更新会慢很多,游戏还没调好,敬请期待

下面是正文

1203:扩号匹配问题


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 18876     通过数: 9815

【题目描述】

在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注。

【输入】

输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。

【输出】

对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。

【输入样例】

((ABCD(x)
)(rttyy())sss)(

【输出样例】

((ABCD(x)
$$
)(rttyy())sss)(
?            ?$

没用递归,之前做过类似的题,不过老师要求用栈做,稍微改了一下,能过

#include<bits/stdc++.h>
using namespace std;
const int N=10001;
int b[N],top=0;
char a[101];
bool pop()
{
	if(top>0)
	{
		top--;
		return true;
	}
	else
	{
		return false;
	}
}
bool topp()
{
	if(top>0)
	{
		return true;
	}
	else
	{
		return false;
	}
}
int popp()
{
	return b[top];
}
void push(int x)
{
	if(top<N-1)
	{
		b[++top]=x;
	}
}
int main()
{
	while(cin>>a)
	{
		cout<<a<<endl;
		int len=strlen(a);
		for(int i=0;i<len;i++)
		{
			if(a[i]=='(')
			{
				push(i);
				a[i]=' ';
			}
			else if(a[i]==')')
			{
				if(!pop())
				{
					a[i]='?';
				}
				else
				{
					a[i]=' ';
				}
			}
			else
			{
				a[i]=' ';
			}
		}
		while(topp())
		{
			a[popp()]='$';
			pop();
		}
		cout<<a<<endl;
	}
}

信息学奥赛一本通(1203:扩号匹配问题) /* 在每一个递归层次都扫描剩余的字符串,遇到左括号进入下一层递归; 遇到右括号则标记空格,并返回右括号下一个位置的下标; 否则标记该左括号为匹配失败。 */ #include<stdio.h> #include<string.h> char s[110]; int len; int f(int pos) { int i; i=pos+1; while(1) { // 遍历数组 whi... 阅读详情

相关推荐

1203:扩号匹配问题

1203:扩号匹配问题 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"...

lybc2019的博客 3491

括号匹配问题

题目描述 http://pkuic.openjudge.cn/hw07/4/ 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用”$”标注,不能匹配的右括号用”?”标注. ###题目思路...

zhaoGavin的博客 959

信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

信息学奥赛一本通(基础算法与数据结构-题解汇总)

lybc2019的博客 1万+

信息学奥赛一本通 1213:八皇后问题

上面已经说过了,v1[i] 表示第 i 列有没有皇后(有为 1,无为 0)、v2[x - y + 8] 表示坐标为 (x, y) 的点所在的右斜线有没有皇后(有为 1,无为 0)、v3[x + y] 表示坐标为 (x, y) 的点所在的左斜线有没有皇后(有为 1,无为 0),所以判断只要他们都是 0 就行了。v2[x - y + 8] 表示坐标为 (x, y) 的点所在的右斜线有没有皇后(有为 1,无为 0)偶,对了,还要把用于输出的 a[x] 赋成 i,因为 a[x] 表示第 x 行的皇后在第几列上。

小 P 的博客 1341

1688店铺所有商品API接口(整店商品查询API接口)

1688店铺所有商品API接口、1688店铺列表API接口,1688店铺API接口,1688店铺查询商品API接口,1688店铺商品API接口,1688店铺详情接口,1688商品API接口

tbprice的博客 1568

别再死磕Excel了!用Vensim PLE免费版,30分钟搞定你的第一个系统动力学模型

本文介绍如何使用Vensim PLE免费版在30分钟内构建第一个系统动力学模型,无需编程或数学基础。通过个人储蓄增长案例,详细讲解因果回路图绘制、存量流量图创建及方程编写,帮助读者掌握动态系统建模与仿真技巧,适用于理财、项目管理等多种场景。

weixin_29045001的博客 329

1203:扩号匹配问题 c++_栈

【题目描述】 题目链接 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$“标注,不能匹配的右括号用”?"标注。 【输入】 输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。 【输出】 分析 此题是栈的比较经典的应用,此题比较麻烦的地方在于,需要知

与其邻渊羡渔,不如退而结网 1770

AXI4接口说明

ACLK:全局AXI接口时钟输入(建议与系统时钟保持一致)ARESET_n:全局AXI接口复位信号,低电平有效。PS:在HBM AXI接口应用中,此复位端口仅应在数据传输开始前使用。若在传输开始后使用,会导致AXI接口与内存控制器失步(out-of-sync)。当开关启用时,IP核会将所有ARESET_n引脚内部连接在一起——因为内存作为一个整体工作。

rhtul的博客 1522

信息学奥赛一本通 1203:扩号匹配问题 | OpenJudge NOI 2.2 2705:扩号匹配问题

【题目链接】 ybt 1203:扩号匹配问题 OpenJudge 2.2 2705:扩号匹配问题 【题目考点】 1. 递归 2. 栈 【解题思路】 解法1:递归 设sign字符数组,各元素初始值都是空格。sign[i]为$表示原字符串第i位置的左括号不匹配,sign[i]为?表示原字符串第i位置的右括号不匹配。将sign末尾添加’\0’,形成一个字符串。 设全局下标si,表示当前遍历到的位置。 遍历字符串: 如果遇到左括号,就调用find()函数。 find()函数的作用为:使用si遍历字符串,找到第一个

君义NOIP的博客 2994

华为面试手撕真题【判断是ipv4还是ipv6地址】

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。

MISAYAONE的博客 1万+

图神经网络实战(1)——图神经网络(Graph Neural Networks, GNN)基础

本节全面介绍了图神经网络 (Graph Neural Network, GNN) ,包括其在数据分析和机器学习中的重要性。首先探讨了图作为数据表示的相关概念及其在各个领域的广泛应用;然后深入探讨图学习的重要性,包括不同的应用和技术。最后,重点介绍了 GNN 架构,并对比了它与其他方法之间的原理和性能差异。

盼小辉丶的博客 15万+

信息学奥赛一本通 1203:扩号匹配问题

3. 如果是‘ )’,需要判断栈是否空。如果栈非空,说明还有未匹配的左括号,栈顶与之最近,和它匹配并出栈;如果栈空,匹配失败,将字符变成‘?5. 最后先输出原字符串s,后输出字符串a,a中如果不是‘ $ ’或‘?1. 定义一个字符串a复制输入的字符串s,我们可以保留原字符串s并在a中进行修改。4. 扫描结束时,栈内的所有左括号都是无法匹配的左括号,全部变‘ $ ’。2. 扫描整个字符串,如果是‘( ’ ,直接将此时下标压入栈中。2. 建一个int类型的栈,存左括号的下标。

2301_76595113的博客 873

推荐系统中召回率Recall计算方式附代码

Recall(召回率)是指在所有实际有交互的用户 - 物品对中,推荐系统成功预测出的比例。具体来说,设所有有交互的用户 - 物品对为S,推荐系统预测出的用户 - 物品对为T,则Recall的计算公式为:

优快云 精品推荐 1842

信息学奥赛一本通:1203:扩号匹配问题

规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。1203:扩号匹配问题。

ffsdfg的博客 828

手把手教你学veriolg(二十六)-- Verilog CIC 滤波器设计

目录 Verilog CIC 滤波器设计1. CIC 滤波器的基本原理2. Verilog 实现3. 说明4. 测试激励5. 总结 CIC(Cascade-Integrator-Comb)滤波器是一种特殊的数字滤波器,常用于多速率信号处理中,尤其是用于信号的上采样(插值)和下采样(抽取)。CIC 滤波器的特点在于它具有简单的硬件实现、不需要乘法器(仅使用加法器和延迟元件)、且具有线性相位特性。然而,CIC 滤波器的缺点是它会产生较大的量化误差,因此在设计时需要特别注意字长的选择以避免溢出。1. CIC 滤波

MHD0815的博客 890

Vue - 简约大气 404 页面

效果图 实现代码 复制即可。 <template> <div> <div class="error"> <!-- 图片可保存到本地 --> <img src="https://img-blog.csdnimg.cn/20210715111039922.png"> <p>抱歉!你访问的页面不存在或已删除 :( </p> <span class="back" @click="go(

🏆 前端领域优质创作者 3370

信息学奥赛一本通 1203:扩号匹配问题 递归算法

写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。时间限制: 1000 ms 内存限制: 65536 KB。1203:扩号匹配问题。

长春高老师编程 810

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【信息奥赛一本通】1203:扩号匹配问题

在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?“标注...

chu_xiaojie的博客 1203

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

扩号匹配问题(信息学奥赛一本通-T1203)

【题目描述】 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注。 【输入】 输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小...

Alex_McAvoy的博客 5837

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

一本通1203

这题就是一本通1353的升级版!

这个人是一个c++修狗 432

信息学奥赛一本通,1203括号检测问题。

本人,苟茨发一下,请大家多多关注,转发,支持,谢谢😁😁😁 #include <bits/stdc++.h> using namespace std; #define N 105 char s[N], sign[N]; int si, len; void find() { int lp = si; si++; while(si < len) { if(s[si] == ')') return; else if(s[

wmh100400的博客 491

信息学奥赛一本通(C++版)第二部分 基础算法例题及课后题解

1310 【例2.2】车厢重组。1311 【例2.5】求逆序对。1186 出现次数超过一半的数。1176 谁考了第k名。1177 奇数单增序列。1181 整数奇偶排序。1184 明明的随机数。1180 分数线划定。1187 统计字符数。1178 成绩排序。1182 合影效果。1183 病人排队。1185 单词排序。1179 奖学金。

长春高老师编程 2992

信息学奥赛一本通(C++版) 第二部分 基础算法 第四章 递归算法

总目录详见:https://blog.youkuaiyun.com/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第四章 递归算法 http://ybt.ssoier.cn:8088/ 以下题目不适合初学者2018-5-17 1315 【例4.5】集合的划分 1316 【例4.6】数的计数(Noip2001) 1199 全排列 120...

mrcrack的博客 7528

线性结构 —— 栈与队列

【概述】 stack 和 queue 是在程序设计中经常会用到的数据容器,STL提供了方便的堆栈、队列的实现,准确地说,STL 中的 stack 与 queue 不同于 pair、vector 等容器,而是对栈、队列这三个数据结构的重新包装。 【stack 的使用】 stack 定义在 <stack> 头文件中,其提供了堆栈的全部功能,即实现了先进后出的数据结构。 定义:s...

Alex_McAvoy的博客 729

一本通————1203 括号匹配(两种解法——栈或递归)

1203:扩号匹配问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4373 通过数: 2314 【题目描述】 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原...

九久的博客 2715
上一篇: 信息学奥赛一本通1188:菲波那契数列(2)
下一篇: 信息学奥赛一本通1202:Pell数列
Jsjjsnmsk
博客等级 码龄4年 548粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值