UVA-11988 悲剧文本-静态链表
你有一个破损的键盘。键盘上的所有键都可以正常工作,但有时Home键或者End键会自 动按下。你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开。当你 打开显示器之后,展现在你面前的是一段悲剧的文本。你的任务是在打开显示器之前计算出 这段悲剧文本。
输入包含多组数据。每组数据占一行,包含不超过100000个字母、下划线、字符“[”或
者“]”。其中字符“[”表示Home键,“]”表示End键。输入结束标志为文件结束符(EOF)。输 入文件不超过5MB。对于每组数据,输出一行,即屏幕上的悲剧文本。
样例输入:
This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University
样例输出:
BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University
代码如下:
#include <cstdio>
#include <cstring>
const int N = 100010;
char s[N];
int next[N];int main() {while (scanf("%s", s + 1) == 1) {int len = strlen(s + 1);int cur = 0;int last = 0;next[0] = 0;for (int i = 1; i <= len; i++) {if (s[i] == '[')cur = 0;else if (s[i] == ']')cur = last;else {next[i] = next[cur];next[cur] = i;if (cur == last)last = i;cur = i;}}for (int i = next[0]; i; i = next[i]) {printf("%c", s[i]);}printf("\n");}return 0;
}
UVA-11988 悲剧文本-静态链表相关推荐
- 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard,UVa 11988)—静态链表...
问题描述: 你有一个破损的键盘.键盘上所有的键都可以正常工作,但有时候Home键或者End键会自动按下.你并不知道键盘存在这一问题,而是专心打稿子,甚至连显示器都没打开.当你打开显示器后,展现在你面前 ...
- 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)
例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988) 链表的应用 #include<iostream> # ...
- 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)
目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...
- 静态链表实现(A-B)+(B-A)【代码】
-----------------------------------------------第一次发代码,写在前面------------------------------------------ ...
- c语言 静态链表插入排序,数据结构C语言版 表插入排序
西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...
- java静态链表_数据结构笔记:静态链表(C语言)
void CreateList(StaticLinkList *P)//创建一个静态链表 { int i; for(i=0;i此时并没有已占用空间,所以第一个节点中的指针(cur)的值为1,也就是说空 ...
- 静态链表的插入和删除
静态链表相当于是用一个数组来实现线性表的链式存储结构,在静态链表中操作的是数组. 结构体数组 一.静态链表的插入操作 静态链表的插入操作包含两部分,首先是获得空闲量的下标,程序代码如下; int ge ...
- java静态链表_用Java实现一个静态链表
什么是静态链表? 对于线性链表,也可用一维数组来进行描述.这种描述方法便于在没有指针类型的高级程序设计语言中使用链表结构. 用数组描述的链表,即称为静态链表. 在C语言中,静态链表的表现形式即为结构体 ...
- 从C语言的角度重构数据结构系列(四)-静态链表动态链表
前言 是否存在一种存储结构,可以融合顺序表和链表各自的优点,从而既能快速访问元素,又能快速增加或删除数据元素. 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战应用系列课程 h ...
最新文章
- Silverlight前景One World One Silverlight
- linux单个core的线程,正确使用Core Data多线程的3种方式
- 轻量级的开源集成:Apache Camel还是Spring集成?
- python中封装是什么意思_Python中数据封装是什么?
- 梁鑫:重构 - 在美股行情系统的实践
- 看完这篇你们团队的代码也很规范
- 路由器链路聚合技术(Eth-Trunk、Ip-Trunk)
- 探究streambuf
- python修改文件后缀_Python批量修改文件后缀的方法
- 注册测绘师划出后的分析与思考
- 基于java的毕业设计选题题目推荐
- 【OPENCV_系列电子PDF图书连载】计算机视觉从入门到精通完整学习路线专栏
- 使用windows钩子捕获进程的启动和关闭消息
- RPG游戏-道具系统
- 第91届奥斯卡奖公布提名名单《罗马》《宠儿》10项提名领跑
- Java Microbenchmark Harness (JMH)
- socket通信技术
- 预告 | 烤仔在世界区块链大会 区块链与数字经济发展论坛等你
- 2022 ICPC南京 B
- AR+旅游,来一场难忘的沉浸式旅行
热门文章
- 剑指offer之打印链表的倒数第N个节点的值
- IOS学习笔记七之KVC和Key路径
- C和指针之函数之求参数列表中的最大值
- linux c之fdopen(int fd, const char *type)使用总结
- Android之MVVM框架 - 数据绑定
- 10分钟做一个新闻问答web站点[iVX低代码实战]
- android auto answer,Incoming call auto answer in android 4.0.3
- java string 数据结构_数据结构---Java---String、StringBuilder、StringBuffer
- go获取项目内所有proto_gRPC学习之三:初试GO版gRPC开发
- 把 14 亿中国人民都拉到一个微信群里在技术上能实现吗?