UVA-11988 悲剧文本-静态链表
生活随笔
收集整理的這篇文章主要介紹了
UVA-11988 悲剧文本-静态链表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
你有一個破損的鍵盤。鍵盤上的所有鍵都可以正常工作,但有時Home鍵或者End鍵會自 動按下。你并不知道鍵盤存在這一問題,而是專心地打稿子,甚至連顯示器都沒打開。當(dāng)你 打開顯示器之后,展現(xiàn)在你面前的是一段悲劇的文本。你的任務(wù)是在打開顯示器之前計算出 這段悲劇文本。
輸入包含多組數(shù)據(jù)。每組數(shù)據(jù)占一行,包含不超過100000個字母、下劃線、字符“[”或
者“]”。其中字符“[”表示Home鍵,“]”表示End鍵。輸入結(jié)束標(biāo)志為文件結(jié)束符(EOF)。輸 入文件不超過5MB。對于每組數(shù)據(jù),輸出一行,即屏幕上的悲劇文本。
樣例輸入:
This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University
樣例輸出:
BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University
代碼如下:
#include <cstdio> #include <cstring> const int N = 100010; char s[N]; int next[N];int main() {while (scanf("%s", s + 1) == 1) {int len = strlen(s + 1);int cur = 0;int last = 0;next[0] = 0;for (int i = 1; i <= len; i++) {if (s[i] == '[')cur = 0;else if (s[i] == ']')cur = last;else {next[i] = next[cur];next[cur] = i;if (cur == last)last = i;cur = i;}}for (int i = next[0]; i; i = next[i]) {printf("%c", s[i]);}printf("\n");}return 0; }總結(jié)
以上是生活随笔為你收集整理的UVA-11988 悲剧文本-静态链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 200斤减肥后皮肤会松弛吗
- 下一篇: UVA - 11059 Maximum