Uva11988 Broken Keyboard (a.k.a. Beiju Text)(就是先输出括号的字符)

OpenCLI入门:让任何网站变成你的命令行工具(超详细版) 最有用的工具,往往是最简单的。 opencli就是这样。 它不会帮你写代码,不会帮你做决策,但它能把200+个平台装进你的命令行。 让你用最简单的方式,获取最丰富的数据。 阅读详情

Description

Download as PDF

Problem B

Broken Keyboard (a.k.a. Beiju Text)

You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem with the keyboard is that sometimes the "home" key or the "end" key gets automatically pressed (internally).

You're not aware of this issue, since you're focusing on the text and did not even turn on the monitor! After you finished typing, you can see a text on the screen (if you turn on the monitor).

In Chinese, we can call it Beiju. Your task is to find the Beiju text.

Input

There are several test cases. Each test case is a single line containing at least one and at most 100,000 letters, underscores and two special characters '[' and ']'. '[' means the "Home" key is pressed internally, and ']' means the "End" key is pressed internally. The input is terminated by end-of-file (EOF). The size of input file does not exceed 5MB.

Output

For each case, print the Beiju text on the screen.

Sample Input

This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University

Output for the Sample Input

BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University

Rujia Liu's Present 3: A Data Structure Contest Celebrating the 100th Anniversary of Tsinghua University
Special Thanks: Yiming Li
Note: Please make sure to test your program with the gift I/O files before submitting!



看到网上一种指针的做法,感觉太厉害了,每次cur指向当前的点,然后把需要输出的字符插到cur的后面,当然这样后面的[]里面的东西会先输出来

根据是 '['  还是']‘改变  cur

具体自己好好想想


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100005

char a[N];
int nest[N];
char ans[N];

int main()
{
   int i,j,len;
   while(gets(a))
   {
   	  int k,cur,last;
   	  k=cur=last=0;
   	  nest[0]=-1;
   	  for(i=0;a[i];i++)
	  {
	  	if(a[i]=='[')
			cur=0;
		else
		  if(a[i]==']')
			cur=last;
		else
		{
			k++;
			ans[k]=a[i];
			nest[k]=nest[cur];
			nest[cur]=k;
			cur=k;
			
			if(nest[k]==-1) last=k;
		}
	  }
	  int t=nest[0];
	  while(t!=-1)
	  {
	  	printf("%c",ans[t]);
	  	t=nest[t];
	  }
	  printf("\n");
   }
   return 0;
}








龙迅LT9611UXC芯片简介:Dual-Port MIPI DSI/CSI to HDMI2.0 with Audio 龙迅半导体推出的LT9611UXC是一款高性能MIPI转HDMI2.0转换器,支持DSI/CSI接口转换,兼容多种视频格式(RGB/YCbCr),最高支持4K@60Hz输出。该芯片集成音频处理(I2S/SPDIF)、色彩空间转换和3D功能,适用于机顶盒、电视盒子等消费电子及车载设备。提供工业级(-40℃~+85℃)和车规级(AEC-Q100认证)版本,采用QFN64封装。 阅读详情

相关推荐

PE启动盘结合360杀毒离线版:深度清除顽固病毒实战指南

在系统安全维护领域,离线查杀是一种在独立于宿主操作系统的环境下进行病毒扫描和清除的核心技术。其原理是通过一个预启动环境(如PE)加载杀毒软件,从而绕过可能已被感染或受保护的系统核心,直接访问和扫描磁盘文件。这项技术的核心价值在于能够彻底处理那些在正常系统运行时难以清除的深度隐藏病毒、Rootkit和驱动级木马。典型的应用场景包括应对勒索软件、顽固感染型病毒以及系统启动项被劫持等情况。本文以“PE启动盘”和“360杀毒离线版”这一经典组合为例,详细解析了从工具选型、环境部署到深度查杀策略的全流程,为系统维护人

weixin_29741447的博客 409

UVA 11988

Problem B Broken Keyboard (a.k.a. Beiju Text) You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem with the keyboard is that sometimes the "home" key o

XMzhou的专栏 916

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...)

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...) 求赞求喜欢求分享,建议关注,防止文章丢失。

hepyang的博客 2179

uva 11988

原题 挺有意思的一道题, 模拟输入, 用链表+迭代器操作非常方便 一个一个字符地读进来, 读到 [ 就把迭代器指向表头, 读到 ] 就把迭代器指向表尾 这里顺便复习一下 list 的迭代器插入规则 : 首先在iter处插入, 指的是从iter指向的元素的前面插入 其次, 用迭代器插入一个字符后, 原迭代器仍然指向原来的字符(与连续存储的vector不同) 即如果 iter 指向 list

pb1995的博客 362

关于42步进电机驱动——基于STM32 HAL库实现

我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它.

Jodan132的博客 1万+

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 713

UVa11988

#include #include const int maxn=100000+5; int last,cur,next[maxn];//用next[]来存放s[]中字符变动后,按照正确顺序应输出的字符所对应的下标,字符的移动实际上是next【】中所存放的s【】的下标的移动  char s[maxn];//用s【】来存放输入的字符串, 并不做任何变动               //cu

bytfvt的博客 1179

从安装Eclipse 开始 开发第一个 CDS View

一篇超级简单快速的 创建CDS VIEW 入门步骤介绍文章。

IT小职员 4249

Broken Keyboard

Description You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem with the keyboard is that sometimes the "home" key or the "end" key gets automatically

DoriLeigh的专栏 524

lammps教程:聚合物压缩,避免“bond atoms missing”

如果使用ms建模,聚合物的链会伸出到盒子外面,在导出data文件后,盒子外面的原子被周期性算法折叠进盒子对面,这就造成了边界附近的bond原子可能被分布到了盒子的两侧。并且,这个data文件不能使用npt系综进行压缩,npt系综必须使用周期性边界,在压缩时,bond原子同样会移动到对面的边界。所以,最好的解决办法是使用一个反射墙墙进行压缩,设置一个反射墙墙既可以实现压缩效果,也可以组织原子跨越box边界移动到对面。解决这个问题的原则只有一个:导出data时确保所有的bond原子没有跨越边界。

lammps_jiayou的博客 3819

软硬件融合加速技术系列文章

目录 文章目录目录计算机组成原理Linux 操作系统原理处理器进程管理内存管理I/O 系统文件系统网络协议栈资源管理设备管理GPUFPGASmartNIC/DPU 计算机组成原理 《计算机组成原理 — 冯诺依曼体系结构》 《计算机组成原理 — 基本硬件设备》 《计算机组成原理 — CPU 中央处理器》 《计算机组成原理 — 指令系统》 《计算机组成原理 — 总线系统》 《计算机组成原理 — 存储系统》 《计算机组成原理 — 输入输出系统 — 存储控制器接口类型》 《计算机组成原理 — 服务器》 《计算机组成

烟云的计算 6806

Broken Keyboard(a.k.a.Beiju Text),UVa 11988

#include #include #include using namespace std; int last,cur; char s[100005]; int main(){ int next[100005]; while(cin>>s+1){ int n=strlen(s+1); last=cur=0; next[0]=0; for(int i=1;i<=n;i++

JokerLives的博客 583

点云数据处理:体素滤波算法

体素滤波是一种简单而有效的点云数据处理方法,可用于去除离群点和平滑点云表面。体素滤波是一种常用的点云数据处理算法,用于去除离群点并平滑点云表面。在本文中,我们将介绍CloudCompare和PCL(Point Cloud Library)中的体素滤波算法,并提供相应的源代码示例。PCL是一个专门用于点云处理的开源库,提供了一系列高效的点云处理算法和工具。然后,我们创建了一个。方法执行体素滤波,并将滤波后的点云保存为"filtered_cloud.ply"文件。方法来执行体素滤波,指定体素大小为0.01。

ZyqfCss的博客 388

UVA 11988 - Broken Keyboard (a.k.a. Beiju Text)

简单的题,要用链表,保持时间复杂度在O(n),切记不要用数组、字符串,这道题目的时间卡的很紧,多次赋值会超时的。 源代码如下: #include #include #include #include #include #include #include #include #include using namespace std; typedef struct node{ char data

zju2016的博客 328

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Broken Keyboard (a.k.a. Beiju Text) UVA - 11988

问题类型:STL-List 03pie’s solution for [UVA-11988]: 问题链接 #include<cstdio> #include<cstring>const int maxn=1000000+5; int last,cur,next[maxn]; char s[maxn];int main(){ while(scanf("%s",s+1)==1){

Lin's Blog 464

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

UVa 11988 - Broken Keyboard (a.k.a. Beiju Text) ( 模拟链表 )

题意 破碎的键盘(又名 悲剧文本) 你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自动按下。你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开。当你打开显示器之后,展现在你面前的是一段悲剧的文本。你的任务是在打开显示器之前计算出这段悲剧文本。 输入包含多组数据。每组数据占一行...

a7152326的博客 185

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

车载SOA架构完全指南:从概念到落地实践

面向服务的架构(SOA)正在成为智能汽车软件定义能力的核心支撑,它通过将车载功能抽象为标准化服务,有效解决了传统ECU信号通信中功能与硬件强绑定的问题。实现SOA的关键在于通信中间件,SOME/IP和DDS是两大主流协议,分别服务于功能调用与数据分发场景,服务发现机制则让分布式节点能够动态感知彼此。车载以太网为服务通信提供了高带宽基础,而IDL接口定义语言则从设计层面保障了服务的契约一致性。从服务分层设计到vsomeip/Demo实战,SOA正全面推动车载软件从开发流程到测试方法的转型。本文系统梳理了车载S

weixin_34280237的博客 359

UVA——11988 Broken Keyboard (a.k.a. Beiju Text)

11988 Broken Keyboard (a.k.a. Beiju Text)You’re typing a long text with a broken keyboard. Well it’s not so badly broken. The only problem withthe keyboard is that sometimes the “home” key or the “end...

weixin_33940102的博客 98

uva 11988 Broken Keyboard (a.k.a. Beiju Text)

以前看这题看不懂,现在终于自己写出来了。。。 #include #include #include const int MAXN=100000+10; char s[MAXN]; int last,cur,next[MAXN]; int main() { while(scanf("%s",s+1)==1) { last=cur=0; next[0]

qq_33901573的博客 256

UVA 11988 Broken Keyboard (a.k.a. Beiju Text)

直接模拟,从后向前扫描,直到遇到'['或者']',遇到'['的话,就将这一段的字符直接输出,因为这一段的字符必定是在前面的字符前的,遇到']'的话将这一段的字符存到数组中,最后将其输出。   代码:   #include #include #include #include #include #include #include #include #include #include #de

绝望的乐园 797

UVA - 11988 Broken Keyboard (a.k.a. Beiju Text) 链表

题目大意:给出一串字符,表示从键盘输入的字符,字符里面的’[‘表示键盘的home键,’]’表示键盘的end键,现要求输出这字符串在显示器上的显示解题思路:链表,处理时要小心. 我是记录该字符串在原字符串中的起始位置,遇到左右中括号就改成’\0’#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #d

静静地码 609

UVa 11988 - Broken Keyboard (a.k.a. Beiju Text)

用链表做的。看了一天,忽略了链表的本质,所以一直看不懂。刚才画了画图,勉强懂了点。

ZmiL_ 372

uva 11988 Broken Keyboard (a.k.a. Beiju Text) 链表

。。。

禅境花园 434

uva 11988 - Broken Keyboard (a.k.a. Beiju Text)(双端队列deque)

#include #include #include #include #include #include #include using namespace std; string s; char ch; int main() { while(getline(cin,s)) { deque deq,deq1; stringstream ss(s)

GejinZ 672

UVa11988-Broken Keyboard (a.k.a. Beiju Text)

水题,STL lis模拟 直接1A#include #include #include #include #include using namespace std; int main(){ string st; list Li; list::iterator it; while(getline(cin,st)){ Li.clear(); Li.push_back("");

mowayao的专栏 656

UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)链表

Description Problem B Broken Keyboard (a.k.a. Beiju Text) You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem with the keyboard is that sometimes

Devin的专栏 557
上一篇: HDU 5108Alexandra and Prime Numbers(大素数)
下一篇: HDU 1542 Atlantis 线段树扫面线求面积并
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值