ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - e569: 00245 - Uncompress 解題心得

Not In My Back Yard | 2019-12-20 22:17:13 | 巴幣 0 | 人氣 529

題目連結(jié):


題目大意:
有一種壓縮方式可以運(yùn)用於不包含數(shù)字的文件。

當(dāng)遇到一個先前未出現(xiàn)的單字時,會將其加入一個單字表的最前面,並把此單字原本的字元原封不動地複製到壓縮文件中;如果出現(xiàn)了一個已出現(xiàn)過的單字,則從單字表裡找出該單字在的位置(最前頭的編號為 1 ,依序數(shù)下去)並將該位置的值複製到壓縮文件裡,接著將該單字移到單字表的最前面;如果是遇到非字母字元,則會直接複製到壓縮文件裡。

輸入有多列(單獨(dú)一列的「0」代表輸入的結(jié)束),每列給定一個字串。這些字串代表著壓縮後的內(nèi)容。請復(fù)原成原始的文章。

註:單字區(qū)分大小寫,即單字 Abc 與 abc 不同;複合字詞,例如 x-ray ,無視特殊符號並以其為界拆分該字成為更小部分的相異單字;所有格,例如 Peter's ,同複合字詞,會被拆分為 Peter 以及 s 二詞。且沒有單字超過 50 個字元長。



範(fàn)例輸入:
Dear Sally,

    Please, please do it--1 would 4
Mary very, 1 much. And 4 6
8 everything in 5's power to make
14 pay off for you.

    -- Thank 2 18 18--
0


範(fàn)例輸出:
Dear Sally,

    Please, please do it--it would please
Mary very, very much. And Mary would
do everything in Mary's power to make
it pay off for you.

    -- Thank you very much--


解題思維:
按照壓縮的方法,建一個單字表。然後依據(jù)壓縮的方式掃過壓縮後的文字。但是遇到數(shù)字時,就將該數(shù)字對應(yīng)於單字表裡的單字輸出,且遇到任何單字都是直接輸出(但是還是要記得將該單字移到單字表的開頭)。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
追蹤 創(chuàng)作集

作者相關(guān)創(chuàng)作

相關(guān)創(chuàng)作

更多創(chuàng)作