思路:乍一看就是擴充套件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 ...