例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),
UVa 11988)

链表的应用

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn = 100000 + 30;int last, cur;// last 存最右边数据在数组中的位置, cur 按照规定顺序用于插入
char s[maxn]; // 为了输入时留出一个虚拟的 s[0],不能使用string s
char ch;int main(){while(scanf("%s", s+1) == 1){//从s[1] 开始输入int n = strlen(s+1); // strlen(s+i)从第 s[i]~s[n] 的长度,不算最后的终止符 //cout << n;last = cur = 0;int next[maxn];// next[]用于指向下一个链结memset(next, 0, sizeof(int));for(int i = 1; i <= n; i++){ch = s[i];if(ch == '[') cur = 0;else if(ch == ']') cur = last;else {next[i] = next[cur];next[cur] = i;if(cur == last) last = i; // 如果需要在最左边插入新的串,则保持last 指向最右边的字符不变,直到最左插入完成,继续最右插入cur = i; }}for(int i = next[0]; i != 0; i = next[i]){cout << s[i];}cout << endl;}return 0;
}

建议手动模拟加深理解

。。。好丑,

例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)相关推荐

  1. 破损的键盘(悲剧的文本)Java UVa11988

    破损的键盘(悲剧的文本)Java UVa11988 题目 分析 Java代码 还是算法作业之一,这次其实是一个acm题.网上查了一下,编号是UVa11988.废话不多说,直接上题. 题目 你有一个破损 ...

  2. 垃圾键盘(bushi) (悲剧文本)

    问题 B: Broken Keyboard 时间限制: 1 Sec 内存限制: 128 MB 题目描述 You're typing a long text with a broken keyboard ...

  3. 例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard,UVa 11988)—静态链表...

    问题描述: 你有一个破损的键盘.键盘上所有的键都可以正常工作,但有时候Home键或者End键会自动按下.你并不知道键盘存在这一问题,而是专心打稿子,甚至连显示器都没打开.当你打开显示器后,展现在你面前 ...

  4. (链表,插入元素)破损的键盘

    题目: 你有一个破损的键盘.键盘上的所有键都可以正常工作,但有时Home键或者End键会自 动按下.你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开.当你 打开显示器之后,展现在你面 ...

  5. 破损的键盘(刘汝佳-算法入门经典第六章)

    感谢原文博主对此题的解释!笔者在原文基础上进行了部分注释以表达自己的理解,如有错误,恳请指正! 原文链接:https://blog.csdn.net/gyh_420/article/details/7 ...

  6. UVA-11988 悲剧文本-静态链表

    你有一个破损的键盘.键盘上的所有键都可以正常工作,但有时Home键或者End键会自 动按下.你并不知道键盘存在这一问题,而是专心地打稿子,甚至连显示器都没打开.当你 打开显示器之后,展现在你面前的是一 ...

  7. 全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题...

    1.全局异步执行耗时任务 dispatch_async(dispatch_get_global_queue(0, 0), ^{ }); 2.主线程异步刷新UI dispatch_async(dispa ...

  8. [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?

    [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if ...

  9. 3.Emwin点击Edit弹出数字键盘,输入到Edit并按下确认更新到Text显示(完整)

    Emwin点击Edit弹出数字键盘,输入到Edit并按下确认更新到Text显示 1. 第一步,先打开emwin的GUIBuilder,分别创建两个页面,第一个是数字键盘页面. 第二个页面包含一个Win ...

最新文章

  1. 近期活动盘点:知识智能高峰论坛暨“知识智能联合研究中心”年度报告会、新时代的医学影像及心脑血管成像的应用思享会...
  2. WINCE6.0隐藏文件夹和应用程序访问物理寄存器
  3. left join 和 left outer join 的区别【转】
  4. boost::msm::mpl_graph::incidence_list_graph相关的测试程序
  5. php中array怎么用,php array函数怎么用
  6. 配置ip yum 单用户 救援 运行级别
  7. ElasticSearch vs. Solr
  8. CodeForces-999D Equalize the Remainders (贪心+神奇的STL)
  9. 将SublimeText加入右键菜单
  10. ORB-SLMA3的学习笔记
  11. 设计模式 可复用面向对象软件的基础_面向对象的可复用设计模式之简单工厂模式(1/24)...
  12. 熔断与降级 搜索和学习 了解不深
  13. 自定义标签之使用struts的valueStack取值
  14. 垂直行业大数据分层架构图
  15. Ubuntu 压缩多个vmdk文件
  16. 敏捷开发的价值观与十二条原则
  17. vs2017工具箱问题(不见工具箱选项卡此组中没有可用控件控件灰化)
  18. 2020京东双十一【全民营业,瓜分十亿】自动做任务软件
  19. char和数值的类型转换
  20. win10计算机休眠后无法唤醒,win10电脑休眠后无法唤醒的解决办法

热门文章

  1. ZABBIX企业微信新版告警
  2. 初学数据结构--链表
  3. 从 webpack 到全面拥抱 Parcel #1 探索 Parcel
  4. 软件工程个人作业01
  5. poj - 2243 Knight Moves
  6. 任命新CFO 百度迎来首位女性高管
  7. 微型计算机的EMC设计视频,干货 | EMC设计有多难,看完这31个电磁兼容标准电路,瞬间懂了...
  8. windows远程桌面linux系统,Windows远程桌面控制Linux图文详解
  9. 一条命令安装Windows Subsystem for Linux
  10. 实施Kubernetes可以实现多云架构安全