你有乙個破損的鍵盤。鍵盤上的所有鍵都可以正常工作,但有時home鍵或者end鍵會自 動按下。你並不知道鍵盤存在這一問題,而是專心地打稿子,甚至連顯示器都沒開啟。當你 開啟顯示器之後,展現在你面前的是一段悲劇的文字。你的任務是在開啟顯示器之前計算出 這段悲劇文字。
輸入包含多組資料。每組資料佔一行,包含不超過100000個字母、下劃線、字元「[」或
者「]」。其中字元「[」表示home鍵,「]」表示end鍵。輸入結束標誌為檔案結束符(eof)。輸 入檔案不超過5mb。對於每組資料,輸出一行,即螢幕上的悲劇文字。
**如下:
#include
#include
const
int n =
100010
;char s[n]
;int next[n]
;int
main()
}for
(int i = next[0]
; i; i = next[i]
)printf
("\n");
}return0;
}
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 鍊錶
之前遇到字典樹什麼的要不就用指標鍊錶,要不直接上list。陣列鍊錶主要思想和指標差不多。指標是用 next記錄下乙個的位址然後形成鏈。陣列本身開闢空間時便是乙個位址所以也可以達到這點。仔細分析一下陣列a的下標再不斷增大,但是記錄的資料卻在更新。所以可以大致寫出 int next 11 int now...
UVa11988 鍊錶簡單應用
這題嘗試了兩種方法,一是書上說的用陣列來實現鍊錶相關操作,一種是利用指標形式的鍊錶實現 1.使用字元陣列c儲存一行中每個字元的值 2.使用陣列next儲存下乙個字元的位置,可以看成c i 和next i 共同構成鍊錶中的乙個結點 所以next 0 c 0 對應的是頭節點 3.設當前字元的上個字元所在...