题目链接:https://vjudge.net/problem/UVA-11988

题目大意:

键盘的home键和end键出现了问题。

在输入一段文本时,home键或end键可能会自动被按下,home键会使光标移动到文章开头,end键会使光标移动到文章结尾。

输入包含多组数据,每组数据一行,包含不超过100000个字母,表示输入文本。[表示home键按下,]表示end键按下。

对每组输入输出一行,表示你在显示屏上看到的文本。

Sample Input
This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University
 
 
Sample Output
BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University
 
stl 链表
#include <iostream>
#include <cstdio>
#include <string.h>
#include <list>
using namespace std;
char str[];
int main()
{
while(scanf("%s",str)!=EOF){
list<char> l;
list<char>::iterator p = l.begin();
int len = strlen(str);
for(int i=; i<len; i++){
if(str[i]=='[')p = l.begin();
else if(str[i]==']')p = l.end();
else l.insert(p, str[i]);
}
for(p = l.begin(); p!=l.end(); ++p)cout << *p;
cout << endl;
}
return ;
}

模拟链表

#include <iostream>
#include<string.h>
#include <algorithm>
using namespace std;
const int maxn = + ; char buf[maxn];
int Next[maxn]; int main(){
int cur, last,n;
while (scanf("%s", buf+)!=EOF){
n = strlen(buf + );
cur = last = ;
for (int i = ; i <= n; i++){
if (buf[i] == '[')cur = ; //house键
else if (buf[i] == ']')cur = last; //end键
else{
Next[i] = Next[cur]; //字符i的下一个位置为cur的下一个位置
Next[cur] = i; //curr的下一个位置为i
//更新cur和last
if (cur == last)last = i; //cur等于i表示光标在显示屏最后一个字符
cur = i; //移动光标
}
}
Next[last] = ; //结束位置
for (int i = Next[]; i != ; i = Next[i])
printf("%c", buf[i]);
printf("\n");
}
return ;
}

2018-03-30

 
 

UVa11988 Broken Keyboard 损坏的键盘【list】的更多相关文章

  1. UVA11988 Broken KeyBoard

    链表的思想很简单,要做到活用也不难.一般我是这样做得,从实际问题出发,先高度的概括符不符合链表的特点.能不能用链表简单解决.接着,就是编码.链表编码要理清细节性思路,最好是简单的画下图,正如改题的链表 ...

  2. UVA-11988 Broken Keyboard (a.k.a. Beiju Text) (链表 或 递归)

    题目大意:将一个字符串改变顺序后输出.遇到“[”就将后面内容拿到最前面输出,遇到“]”就将后面的内容拿到最后面输出. 题目分析:用nxt[i]数组表示i后面的字符的下标,实际上就是以字符i为头建立链表 ...

  3. UVA11988 Broken Keyboard (a.k.a. Beiju Text)【数组模拟链表】

    参考:https://blog.csdn.net/lianai911/article/details/41831645 #include <iostream> #include <c ...

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

    题目复制太麻烦了,甩个链接 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18693 直接模拟光标操作时间复杂度较高,所以用链 ...

  5. UVa11988 Broken Keyboard(练习链表使用)

    向量和数组的优势是可以随机的存取元素和在末尾添加删除元素,而当插入元素时,需要移动大量的数据,消耗大量的时间.而链表的优势是可以在O(1)删除和插入数据.所以在频繁移动元素时,可以使用链表. 分析:如 ...

  6. UVa 11998 Broken Keyboard (数组模拟链表问题)

    题目链接: 传送门 Broken Keyboard #include<bits/stdc++.h> using namespace std; char str[100010]; int m ...

  7. 破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)

    破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988) 题意描述 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下. ...

  8. PAT1084:Broken Keyboard

    1084. Broken Keyboard (20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue On a ...

  9. 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 wi ...

随机推荐

  1. 前端图片缓存之通过img标签加载GIF只能播放一次问题(转载)

    最近项目中要求再网页中插入一张gif图片,让用户每次到达该位置时动一次,所以我们就制作了一张只动一次的gif图片通过img标签引入.当用户进入该位置时,通过remove()清除图片然后重新append ...

  2. Java编程之前的复习和练习

    日期:2018.7.14 星期六 博客期:001 今天先是试着写一下博客,最近去青海旅游了,学习时间有点少,但空余时间还是有学习的,不管怎么样吧!先说一下我的这几天的成果——“Bignum”类,虽然很 ...

  3. EasyUI Layout 布局

    1.在整个页面上创建布局(Layout) <!DOCTYPE html> <html> <head> <title>吹泡泡的魚-主页</title ...

  4. LeetCode(123):买卖股票的最佳时机 III

    Hard! 题目描述: 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易. 注意: 你不能同时参与多笔交易(你必 ...

  5. laravel 多检索条件列表查询

    public function indexQuestions(Request $request, ResponseFactoryContract $response, QuestionModel $q ...

  6. 控制台操作mysql常用命令

    总结: 1. 控制台链接mysql mysql -u lzpddd -pmypassword -h -D mydb -S /opt/mysql/data/mysql//mysql.sock 2.

  7. idea 设置选中代码得背景颜色

  8. WBXML 1.3协议摘要

    协议地址:WAP195   网络字节顺序:big-endian.   为什么要加0x40? 参考:Compressing XML When an element contains content (t ...

  9. Spring.Net 简单实例-02(属性注入)

    说明:接续Spring.Net 简单实例-01(IOC) 话不多说看操作 1:为UserInfo添加属性 2: 修改App.config中代码 <?xml version="1.0&q ...

  10. 20165323 实验一 Java开发环境的熟悉

    一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:杨金川 学号:20165323 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 15:25 实验序号:一 实 ...