codevs 4650 破损的键盘(stl)
来源:互联网 发布:linux怎么安装语言包 编辑:程序博客网 时间:2024/04/30 05:22
*PS:现学的list 打起来好心累QAQ
go to the problem–>
题目描述 Description
有一天,你需要打一份文件,但是你的键盘坏了,上面的”home”键和”end”键会时不时地按下,而你却毫不知情,甚至你都懒得打开显示器,当你打开显示器之后,出现在你的面前的是一段悲剧的文本。
输入描述 Input Description
输入只有一行,即这份文件,这份文件只包含小写字母和’[‘以及’]’,用’[‘代替”home”键,用’]’代替”end”键。
输出描述 Output Description
你的任务是在打开显示器之前,计算出这份悲剧的文档。
样例输入 Sample Input
kdg[gek]h[itj
de[co]vs
样例输出 Sample Output
itjgekkdgh
codevs
数据范围及提示 Data Size & Hint
包含多组测试数据,直到文件结束。
字符串长度小于10000个字符。
不包含空格。
双端链表,本来想着有空打打的,可是清北的老师讲了list,所以就拿来练练了QWQ。
home就是从头插入,end是从尾插入。
代码
#include<iostream>#include<list> // 双端链表 using namespace std;string a;list<char> b;list<char>::iterator f;int main(){ while(cin>>a) { int l=a.length();f=b.begin(); for(int i=0;i<l;++i) { if(a[i]=='[') f=b.begin(); //把f移到链表头部 else if(a[i]==']') f=b.end(); //把f移到链表尾部 else b.insert(f,a[i]); // f会随着插入而后移 } while(!b.empty()) { cout<<b.front(); b.pop_front(); } cout<<'\n'; } return 0; }//http://www.cplusplus.com/reference/list/list/insert///http://www.cplusplus.com/reference/list/list/push_back/
阅读全文
0 0
- codevs 4650 破损的键盘(stl)
- codevs 4650 破损的键盘(链表)
- codevs 4650 破损的键盘(链表)
- 【codevs 4650】破损的键盘
- 【codevs 4650】破损的键盘
- 【codevs 4716】破损的键盘2
- uva 11988 破损的键盘(链表)
- 破损的键盘(uva 11988)
- 破损的键盘(又名:悲剧文本)
- 破损的键盘(链表)
- UVa 11988破损的键盘
- 破损的键盘,紫书P143UVa11988
- UVA 11988 破损的键盘
- 破损的键盘(Broken KeyBoard)Uva 11988
- 例题6-4 破损的键盘 UVa11988
- string+暴力——破损的键盘
- 例题6-4 破损的键盘 UVa 11988
- UVa 11988 破损的键盘 链表 双向队列
- EL表达式获取对象属性的原理
- Unity
- ACM训练半周总结—10月19日
- Android 如何创建socket服务器
- java.sql.SQLException: No suitable driver
- codevs 4650 破损的键盘(stl)
- Java并发编程实战(2)
- WebService安全认证
- Linux 下修改socket接收缓冲区
- 【暂未解决】video标签在移动端页面播放时默认全屏的问题
- 一张图看懂小米开源的分布式KV存储系统Pegasus
- CentOS 下配置网络yum源
- Mongo分库方案选型
- 面试问题(aop 反回结果的增强是哪个)