悲剧文本(Broken Keyboard (a.k.a. Beiju Text),UVA 11988)
Posted secoding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了悲剧文本(Broken Keyboard (a.k.a. Beiju Text),UVA 11988)相关的知识,希望对你有一定的参考价值。
题目描述:
题目思路:
1.使用链表来重新定位各个字符
2.用数组实现链表
3.开一个数组list[i]来存储字符数组下一个字符的位置
#include <iostream> #include <cstring> using namespace std; const int maxn = 100000 + 5; int last,cur,list[maxn] ; char s[maxn] ; int main(int argc, char *argv[]) { while(scanf("%s",s+1) == 1) { int len = strlen(s+1); last = cur = 0; list[0] = 0; //指示位置的链表 for(int i = 1;i <= len ;i++) { char ch = s[i] ; if(ch == ‘[‘) cur = 0; else if(ch == ‘]‘) cur = last ; else{ list[i] = list[cur] ; //光标跳转,指示开头 list[cur] = i; if(cur == last) last = i ; cur = i ; } } for(int i = list[0]; i != 0;i = list[i]) printf("%c",s[i]); cout << endl ; } return 0; }
以上是关于悲剧文本(Broken Keyboard (a.k.a. Beiju Text),UVA 11988)的主要内容,如果未能解决你的问题,请参考以下文章
悲剧文本(Broken Keyboard (a.k.a. Beiju Text),UVA 11988)
例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard,UVa 11988)—静态链表
UVa11988 Broken Keyboard 损坏的键盘list
UVa 11988 Broken Keyboard(数组模拟链表)