UVa 11988 ------ Broken Keyboard

原创 2015年11月20日 16:02:21

题目:UVa 11988


/*
	UVa 11988 ------ Broken Keyboard
*/
#include <cstdio>
#include <cstring>

const int maxn = 100000 + 5;
int cur, last, next[maxn];
char s[maxn];

int main()
{
	while (scanf("%s", s + 1) == 1){//从s[1]开始存取
		//初始化工作
		int len = strlen(s + 1);
		last = cur = 0;
		next[0] = 0;

		//将字符串利用next串起来,其中cur为当前光标的位置
		for (int i = 1; i <= len; ++i){
			char ch = s[i];	//获取当前字符
			if ('[' == ch)
				cur = 0; //cur标记当前光标位置,遇到[则标记为0
			else if (']' == ch)
				cur = last;	//cur标记当前位置,last标记最后一个字母的位置,遇到]则将cur设置为last
			else{
				//普通字母,则在cur之后,next[cur]之前插入i位置的字符(链表的插入)
				next[i] = next[cur];
				next[cur] = i;	//链表的插入
				if (cur == last)
					last = i;	//若在尾部插入则更新尾指针
				cur = i; //移动光标
			}
		}//for(i)
		for (int i = next[0]; i != 0; i = next[i]){
			printf("%c", s[i]);
		}//for(i)
		puts("");
	}//while(s)

	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard(a.k.a. Beiju Text), UVa 11988)

#ifdef _DEBUG #pragma warning(disable : 4996) #endif #include #include #include #include #includ...

UVa 11988 Broken Keyboard (a.k.a. Beiju Text) (指针的"思想")

11988 - Broken Keyboard (a.k.a. Beiju Text) Time limit: 1.000 seconds http://uva.onlinejudge.org/ind...

UVA 11988 Broken Keyboard (a.k.a. Beiju Text)

输入一个字符串,包含‘[’和‘]’,表示home和end,也就是说打字的时候光标会跑到最前边或最后边。直接用string模拟的话应该会超时,每次都要改很多东西。 于是乎搞个deque吧。双端队列,两端...

UVa-11988-Broken Keyboard (a.k.a. Beiju Text)

11988-Broken Keyboard (a.k.a. Beiju Text) Description: You’re typing along text with a broken keyb...

UVa 11988 Broken Keyboard(链表的应用)

题意 电脑键盘的home键和end键坏了 会在你不注意时自动按下 给你一个输入序列 '['代表home键 ']'代表end键 要求输出屏幕上对应的输出 用链表保存每个位置的字符c和下一个位置...

UVA11988 Broken Keyboard

You're typing a long text with a broken keyboard. Well it's not so badly broken. The only problem wi...

uva11988 broken keyboard (悲剧文本)

你有一个破损的键盘,所有键都能正常工作,但是home 和 end键有时会自动按下,你并不知道这一问题的存在,专心打稿子,甚至屏幕都没有开,当你打开屏幕时,屏幕上是悲剧文本,你的任务是计算出这段悲剧文本...

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

题意:你在输入文本,插入点会不时跳到最前面或最后面,shu'chu

[UVA]11988 - Broken Keyboard (a.k.a. Beiju Text) 题解 及一点点感想

前言暑期小组开始了每日一题模式,我对ACMer or 算法题 一直是很膜拜的,,,然而自己及其不喜欢做题,,,(可能是大一时的阴影。。)但是就像@Jung学长说的,手上功夫不能放松,这个暑假每天也是逼...

Broken Keyboard (a.k.a. Beiju Text) UVA, 11988(链表)

题目大意:某位程序员在用坏掉的键盘打字,这个键盘的home键和end键会是不是自己打印。然后现在给出这样的一串文字,要求你打印出之后会在屏幕上显示的字符串,也就是每次碰到这个健后光标就会移动到这行的最...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)