題意:
給乙個字串,求滿足既是這個字串的字首,又是這個字串的字尾,從小到大輸出長度
思路:細講next陣列含義博文:點我
首先要滿足字首的呀。
kmp的next陣列幹的是子串最長字尾。
所以從最後乙個next一直往前跳,next存的就是最長字尾,知道為0||-1;
//#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int n=4e5+10;
int next[n],len;
char s[n];
//ababcababababcabab
//2 4 9 18
void getnext()
{ int i=0,j=-1;
next[0]=-1;
while(i
POJ 2752 (擴充套件kmp)
給你乙個字串,對於它的每乙個字首,如果同時是它的字尾的話,那麼輸出這個字首的位置。擴充套件kmp求一下next陣列,然後掃一遍每個位置,如果這個位置的next值 也就是這個位置的字尾和字首的最大匹配長度 是等於字尾長度的話,也就是說這個位置的字尾同時也是它的字首的話,那麼這個位置就是乙個答案。inc...
POJ2752KMP逆序處理
題意 給你乙個串,問你都哪些位置即使字首又是字尾。思路 可以用kmp來做,嘗試過很多種方法,想把兩個串接起來然後.失敗,後來又想可以倒著匹配,就是把整個串倒過來.失敗,說下第三種也是成功的方法,就是正常匹配,然後找到最後乙個的next,如果是0,那麼就不用找了,否則裡面的數值是答案,然後再找next...
再做POJ2406 KMPnext陣列的運用
這道題在很久之前就做過,由於那時候還沒有仔細研究kmp以及對next陣列的理解,所以當時也是留下了這個問題,最近 資料結構 上到串,老師提到這個演算法,但是沒有講,下來後,我覺得是時候看下這個演算法了。題目大概意思就是求給出的字串最大迴圈節。比如 ababab 就是由3個 ab 相連而成,所以輸出3...