0
當它的形式爲u = ww時,給定單詞V的子字U是雙的,例如「abab」是「acdababx」的雙子字,但「cdab」不是。找到給定單詞的雙子字的算法
我需要一個算法來檢查字V的給定子字U是否加倍。 V可以在線性時間進行預處理,但對於任何特定的U的回答應該具有恆定的時間複雜度,因爲對於每個V會有多個U.例如,如果V =「acdababx」,則給出U作爲間隔,區間[3 ..6]對應於子詞「大巴」。
例如輸入和輸出:
V = abbacbacca
U =
- [1 4] - >沒有
- [3 8] - >是
- [5 8] - >否
- [8 9] - >是
- [110] - > N
這不是任何當前比賽的問題。
那麼'u - > ww'保證只有'w'兩次? – Argote 2011-03-30 22:56:46
或者更有趣...如何找到一個字符串中的所有雙子串? – 2011-03-30 23:08:42
@Argote:通過寫u = ww我的意思是你是附加在自己身上的一些詞。 @belisarius:在一個字符串中查找所有的雙重子字符串可以很容易地在O(n^2)時間完成,但是在這裏它太慢了,因爲n可能很大。 – KCH 2011-03-30 23:21:03