UVA 11988 破損的鍵盤

2021-08-10 20:22:59 字數 658 閱讀 8190

題目大意:

從鍵盤輸入一行字串,但是由於鍵盤上的home(首)鍵和end(尾)鍵壞了,有時會自動按下這兩個鍵,所以打出的字串是混亂的。

輸入

共包含多組資料,每組資料佔一行,輸入的每行字串,是從鍵盤按下去的每乙個鍵,其中 "["代表home鍵,「]」代表end鍵            例:this_is_a_[beiju]_text

(注:輸入結束標誌為檔案的結束標誌eof)

輸出

每組資料 輸出混亂的一行字串      例:beijuthis_is_a__text

資料範圍

每行不超過100000個字母、下劃線、字元" [ ] ",其中"[" 代表home鍵,"]" 代表end鍵 , 記憶體限制<=5mb

思路

肯定不能用陣列來訪問資料,肯定會超時,每插入乙個字元到陣列中,後面資料的移動會耗掉很長時間

而用鍊錶實現,進行位址的改變,完成字元的 向前移動、向後移動操作!

破損的鍵盤(uva 11988)

給你一段按鍵的文字,其中 表示home鍵,表示end鍵,輸出這段悲劇的文字。思路 使用鍊錶來模擬,遇到home鍵,就將後邊的文字插入到這段文字的最前邊,遇到 end鍵,就插入到這段文字的最後邊。但是用鍊錶會用到指標,過程比較繁瑣。這裡用乙個 next陣列模擬指向,next i 表示當前顯示屏中s i...

UVA11988破損的鍵盤(悲劇文字)

1.虛擬結點,從s 1開始輸入,字串長度也從s 1開始計算 2.next i next cur 大致是把下乙個字元的位置設為0 next cur i是將cur與i連線起來,相當於在cur後插入i,即cur i 3.遇到 時,令cur 0,即在0後插入元素 遇到 時,令cur last,即在最後乙個元...

UVa 11988 破損的鍵盤(鍊錶)

題意就是輸入文字,若是遇到 游標就移到最前面,遇到 游標就移到最後。在這段 中,在for迴圈中如果不用n來代替strlen s 1 最後就會超時,以後寫 的時候我會注意到這點。1 include2 include3 include4 using namespace std 56 const int ...