字串專題 擴充套件KMP

2021-08-20 14:00:16 字數 832 閱讀 4036

思路:乍一看就是擴充套件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 a[ax];

int b[ax];

int sa[ax];

int sb[ax];

int next1[ax];

int extend[ax];

int res ;

int re[ax];

void getnext()else

}}void getextend()

for( int i = 1 ; i < len ; i++ )else

if( extend[i] == lenm )

}}int main()

for( int i = 0 ; i < m ; i++ )

getextend();

printf("%d\n",res);

for( int i = 0 ; i < res ;i ++ )printf("\n");

return

0 ;}

( 字串專題 ) 擴充套件KMP

字串專題 擴充套件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 模板 in...

字串 擴充套件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 ...