题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18693

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
/*************************************************************************************************************题意:题目大意:你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下。给你一段按键的文本,其中'['表示Home键,']'表示End键,输出这段悲剧的文本。思路:1,使用链表来模拟,遇到Home键,就将后边的文本插入到这段文本的最前边,2,遇到End键,就插入到这段文本的最后边。3,重点学习数组模拟链表的使用方法,具体写到注释里面了,好好理解。
*************************************************************************************************************/char s[101000];
int Next[101000];int main()
{int cur,last;//cur为光标位置,last为显示屏最后一个字符while(cin>>s+1){memset(Next,0,sizeof(Next));int len = strlen(s+1);Next[0] = 0;cur = last = 0;for(int i = 1; i <= len; i++){if(s[i] == '[')cur = 0;else if(s[i] == ']')cur = last;else{Next[i] = Next[cur];        //第i个字符指向光标位置Next[cur] = i;      //光标指向下一个字符if(cur == last)     //只有光标在当前最后一个字符位置或是遇到]后才执行last = i;cur = i;        //移动光标}}for(int i = Next[0]; i != 0; i = Next[i])cout<<s[i];cout<<endl;memset(s,0,sizeof(s));}return 0;
}

转载于:https://www.cnblogs.com/Jstyle-continue/p/6351971.html

UVa - 11988 Broken Keyboard(数组模拟链表)相关推荐

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

    题意:给定一个字符串,然后[会将光标跳转到头,]会将光标调到尾,问最后正确的输入. 思路:直接用list来模拟即可,[的时候就在头插,]就在尾插,也可根据递归顺序解. code: #include & ...

  2. 链表 + 数组模拟链表

    链表的指针实现 1.指针 #include<iostream> using namespace std; int main(){int a = 5;int *p; // int 型的指针d ...

  3. 数组模拟链表原理解释

    ** 数组模拟链表原理解释(我觉得比我聪明的人应该都能看懂) ** 最近在学这个,上网搜相关内容多是代码还解释的不清楚,看着头痛,终于我顿悟了,我把我的理解写出来给大家分享一下(本人计较笨,可能写的过 ...

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

    Broken Keyboard (a.k.a. Beiju Text) You're typing a long text with a broken keyboard. Well it's not ...

  5. C++实现数组模拟链表(实现链表的增删功能)

    代码如下: #include <iostream> using namespace std; const int N = 100;struct Node {int data;int nex ...

  6. OJ考试特别版,数组模拟链表(比正儿八经用链表简单,结果还对,何乐而不为)

    1 数据结构实验之链表一:顺序建立链表 (20 分) #include<stdio.h> int main() {int n,i;scanf("%d",&n); ...

  7. FZU 1492 地震预测(模拟链表)(技巧题)

    地震预测 Problem Description 怀特先生是一名研究地震的科学家,最近他发现如果知道某一段时间内的地壳震动能量采样的最小波动值之和,可以有效地预测大地震的发生. 假设已知一段时间的n次 ...

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

    例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988) 链表的应用 #include<iostream> # ...

  9. 【刘汝佳代码详解】例题6-4破损的键盘(Broken Keyboard,UVa 11988)

    立志用最少的代码做最高效的表达 You're typing a long text with a broken keyboard. Well it's not so badly broken. The ...

最新文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制分组直方图(分组颜色设置)实战
  2. docker 部署 mysql 8.0.18
  3. 硬件:开机如何进BIOS,U盘启动快捷键一键查询!
  4. C#编译和运行过程图例
  5. c语言编译器不支持64位,什么编译器支持64位整数?
  6. 理论基础 —— 线性表 —— 循环链表
  7. MONGODB-CR credentials missing in the user document的解决办法
  8. MATLAB信号处理之离散时间系统的时域分析
  9. Atitit.字节数组转字符串 base64 base16 Quoted-printable 编码原理设计 attilax 总结
  10. 山东理工大学ACM平台题答案关于C语言 1231 绝对值排序
  11. 计算机毕业设计PHP图书馆图书借阅管理系统
  12. 讲讲那些 H-桥电路 的基本道理
  13. 集成 rootbeer 和 小米mix2s Root 流程
  14. zoj 3351 Bloodsucker
  15. php博客 程序 论文,php博客系统论文 (附加程序代码)
  16. 【信奥赛一本通】1183:病人排队(详细代码)
  17. 【机器翻译】《Nearest Neighbor Knowledge Distillation for Neural Machine Translation》论文总结
  18. mysql数据库设计工具_四种优秀的数据库设计工具
  19. 用python判断所输入的任意一个正整数是否为素数
  20. ubuntu下,python2与3共存问题及pip使用的解决

热门文章

  1. 【theano-windows】学习笔记九——softmax手写数字分类
  2. ICA独立成分分析—FastICA基于负熵最大
  3. UFLDL教程:Exercise:PCA in 2D PCA and Whitening
  4. 【NOIP2018】DAY2T2——填数游戏(轮廓线状压的dp?搜索打表)
  5. [数据结构] - ArrayList探究
  6. Quartz.Net定时任务EF+MVC版的web服务
  7. opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3
  8. 本地搭建Dubbo监控中心的安装步骤
  9. USE PDFCREATE TO CREATE A PDF FILE
  10. java调用、执行groovy代码