YTU 2297 KMP模式匹配 三(串)

2022-07-17 08:12:13 字數 737 閱讀 4680

時間限制: 1 sec  記憶體限制: 128 mb

提交: 25  解決: 16

[提交][狀態][討論版]

[edit] [testdata]輸入乙個主串和乙個子串,若匹配成功,則找出匹配的趟數和在子串在主串中的位置,若匹配不成功,則輸出0

輸入兩個字串

輸出匹配的趟數和位置

ababcabcacbab

abcac

3 6
#include #include #define sizemax 105

typedef struct

sqstring;

void getnext(sqstring s,int next)

int main()

,ci=1;

char c[sizemax],d[sizemax];

gets(c);

gets(d);

strassign(s,c); //建立串

strassign(t,d);

getnext(t,next); //得到next值

int k=kmp(s,t,next,ci); //solve

printf("%d %d\n",ci,k);

return 0;}/*

acabaabaabcacaabc

abaabcac

4 6*/

KMP模式匹配

1,若第i個開始不等,移動到第i個。直接將sub 0 與src 5 比較。01 2345 678a bcab abca abca bx 2,sub 2 與src 5 比較。01 2345 678a bcab abca abca b 看大神的 理解不了,還是按自己的思路寫乙個,繁瑣還是起碼好理解就行。...

KMP模式匹配

有些演算法,適合從它產生的動機,如何設計與解決問題這樣正向地去介紹。但kmp演算法真的不適合這樣去學。最好的辦法是先搞清楚它所用的資料結構是什麼,再搞清楚怎麼用,最後為什麼的問題就會有恍然大悟的感覺。我試著從這個思路再介紹一下。大家只需要記住一點,pmt是什麼東西。然後自己臨時推這個演算法也是能推出...

KMP模式匹配

屌毛演算法導致我直接罷工兩天沒心情做題。kmp就是用來解決匹配問題,比如字串中找重複子串。核心就是乙個next陣列 含義 next i 即 以i為結尾的非字首字串 和 字首 能夠匹配的最大長度。沒有的話可以為0 abaabaaaa next 5 就是因為aba和 aba 相匹配,為3 如果直接列舉n...