( 字串專題 ) 擴充套件KMP

2021-10-08 19:22:48 字數 518 閱讀 2373

( 字串專題 )【 擴充套件kmp 】

時間複雜度:o(n+m)

用 extend[i]表示t[i~n-1]與p的最長公共字首。

假設t=「aaaab」, p="aaaa"。則extend[5] =

next[i]表示為 串p 中以 i 為起點的字尾字串和 整個串p 的最長公共字首長度.

假設p=「aaaab」 則next[5] =

模板

#includeusing namespace std;

//next[i]:x[i...m-1] 與 x[0...m-1] 的最長公共字首

//extend[i]:y[i...n-1] 與 x[0...m-1] 的最長公共字首

int nxt[200005],extend[200005];

char s[200005], t[200005];

void get_nxt()

字串專題 擴充套件KMP

思路 乍一看就是擴充套件kmp,但這題還是要一點點轉化。如果想要滿足題目要求,匹配段肯定間隔是相反的。比如樣例中在0位置匹配 1 3 4 2 6 9 5 3 2 2 0 code include using namespace std const int ax 1e5 66 int n m int ...

字串 擴充套件kmp演算法總結

這兩天呢,一直在被小夥伴們快ak的恐懼支配,g題杭電的資料很水,但是自己還是選擇不水過,用擴充套件kmp去寫,網上的資料很多,自己選了乙個最簡潔的模板,不用再寫乙個求next陣列的函式,直接呼叫前特殊處理下exkmp函式就既可以求next陣列,又可以求ex陣列啦,hh誰說魚與熊掌不可兼得,這不就是嗎...

字串專題

created on 2019年12月1日 author hp 擷取字串 str2 我是迪迦奧特曼 str3 str2 5 str4 str2 0 len str2 2 print str3,str4 擷取的字串如果不存在,會出現異常,可以用try.except捕捉異常 try str5 str2 ...