UVa 11988 数组模拟链表
来源:互联网 发布:青岛网络问政 编辑:程序博客网 时间:2024/06/07 16:36
题目:在一个没有显示器的电脑上输入一个字符串,键盘坏掉了,会随机的出现home,和end按键,
字符串中'['代表home键(句首),']'代表end键(句尾),问最后输出的字符串的格式。
分析:模拟屏幕操作,移动光标,模拟缓冲区输出操作。
说明:数组模拟链表操作。
输入:This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University
输出:BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University
1 // UVa11988 Broken Keyboard 2 // Rujia Liu 3 #include<cstdio> 4 #include<cstring> 5 const int maxn = 100000 + 5; 6 int last, cur, next[maxn]; // 光标位于cur号字符之后面 7 char s[maxn]; 8 9 int main() {10 while(scanf("%s", s+1) == 1) {11 int n = strlen(s+1); // 输入保存在s[1], s[2]...中12 last = cur = 0;13 next[0] = 0;14 15 for(int i = 1; i <= n; i++) {16 char ch = s[i];17 if(ch == '[') cur = 0;18 else if(ch == ']') cur = last;19 else {20 next[i] = next[cur];21 next[cur] = i;22 if(cur == last) last = i; // 更新“最后一个字符”编号23 cur = i; // 移动光标24 }25 }26 for(int i = next[0]; i != 0; i = next[i])27 printf("%c", s[i]);28 printf("\n");29 }30 return 0;31 }
关于数组模拟链表 http://blog.csdn.net/jianxin1009/article/details/7952069
理解问题:
6
0 0
- UVa 11988 数组模拟链表
- UVa-11988(数组模拟链表)
- 【数组模拟链表】UVA
- UVa - 11988 Broken Keyboard(数组模拟链表)
- 【数组模拟链表(双向)】UVA
- UVA 11988 Broken Keyboard (a.k.a. Beiju Text)【数组模拟链表】
- UVa 11988 Broken Keyboard (a.k.a. Beiju Text) 数组模拟单向链表
- UVA 11988 Broken Keyboard (a.k.a. Beiju Text)(数组模拟链表)
- 紫书章六例题四 悲剧文本 UVA 11988 (用数组模拟单向链表/递归)
- UVa 11988 Broken Keyboard(模拟链表)
- uva--10050+链表模拟
- UVA 12657 链表模拟
- 数组模拟链表
- 数组模拟链表
- UVa 12657 Boxes in a Line 数组模拟双向循环链表
- 紫书章六例题五 移动盒子 UVA 12657 (数组模拟双向链表)
- UVa 227 Puzzle 【数组和字符串】【模拟】
- UVA-133 双向链表模拟题
- Sublime Text
- PHP里面调用JS语句里面用到PHP变量
- ViewData与ViewBag的区别是什么
- 静态链表
- linux集群时间同步搭建
- UVa 11988 数组模拟链表
- HTML XML CSS JS 迅速学习
- 多线程编程
- 并行运行环境
- UVa 12657 双向链表
- 动态规划
- 记录我的bug问题,关于View隐藏对其他空间的影响问题
- Two Pointers/hash/3Sum/4Sum类题目
- C++ 一些STL