UVa 11988破损的键盘
2016-07-22 12:13
225 查看
这题是很好的学习用数组实现链表的例子.
原题链接 UVa11988
题意
输入一段文本,字符’[‘表示Home键,’]’表示End键。输出屏幕上面的结果。
思路
难点在于在字符串的头和尾插入字符,如果直接利用数组操作,会超时,最好的办法就是利用单向链表。
刘汝佳大哥的代码
如有不当之处欢迎指出!!
原题链接 UVa11988
题意
输入一段文本,字符’[‘表示Home键,’]’表示End键。输出屏幕上面的结果。
思路
难点在于在字符串的头和尾插入字符,如果直接利用数组操作,会超时,最好的办法就是利用单向链表。
刘汝佳大哥的代码
#include<cstdio> #include<cstring> const int maxn=100000+5; char str[maxn]; int next[maxn]; int cur,last; int main(void) { while(scanf("%s",str+1)!=EOF) { int n=strlen(str+1); cur=last=0;// next[0]=0; for(int i=1;i<=n;i++) { if(str[i]=='[') cur=0; else if(str[i]==']') cur=last; else { next[i]=next[cur];//记录之前坐标 next[cur]=i;//记录当前字符的下标 if(cur==last) last=i; cur=i; } } for(int i=next[0];i!=0;i=next[i]) { printf("%c",str[i]); } printf("\n"); } return 0; }
如有不当之处欢迎指出!!
相关文章推荐
- Android MVC
- 使用Source Insight 查看VS2010项目
- rt3070芯片动态获取IP地址———station模式
- btree索引和hash索引的区别
- 子类可以直接使用父类的变量、方法吗?
- 计算一个点是否在多边形里 JavaScript实现(未测试)
- 线程中中的调度图
- SpringBoot入门系列:第四篇 redis
- 2016 Multi-University Training Contest 1 1004 GCD HDU 5726 (RMQ)
- spring动态代理
- jsp简单实现统计在线人数(未测试)
- 栈和队列
- EasyDarwin开源流媒体云平台中boost Base64编解码后与源长度不匹配的bug
- 利用log4j显示hibernate打印sql中的参数
- js 倒计时功能 (未测试)
- hdu5742 It's All In The Mind
- SDWebImage底层实现原理及内部实现过程
- EasyDarwin开源流媒体云平台中boost Base64编解码后与源长度不匹配的bug
- mongDB-- 3. 查询操作
- 丢番图方程