KMP 串的模式匹配 25 分

2022-03-19 12:31:51 字數 1166 閱讀 1036

給定兩個由英文本母組成的字串 string 和 pattern,要求找到 pattern 在 string 中第一次出現的位置,並將此位置後的 string 的子串輸出。如果找不到,則輸出「not found」。

本題旨在測試各種不同的匹配演算法在各種資料情況下的表現。各組測試資料特點如下:

輸入第一行給出 string,為由英文本母組成的、長度不超過 1 的字串。第二行給出乙個正整數 n(≤),為待匹配的模式串的個數。隨後 n 行,每行給出乙個 pattern,為由英文本母組成的、長度不超過 1 的字串。每個字串都非空,以回車結束。

對每個 pattern,按照題面要求輸出匹配結果。

abcabcabcabcacabxy

3abcabcacab

cabcabcd

abcabcabcabcacabxyz

abcabcacabxy

not found

not found

//

今年又是這樣沒時間來好好看最後的兩道演算法題。。

#include #include

#include

typedef

intposition;

#define notfound -1

void buildmatch( char *pattern, int *match )}

position kmp(

char *string, char *pattern )

else

if (p>0) p = match[p-1]+1

;

else s++;

}return ( p==m )? (s-m) : notfound;

}int

main() ;

char pattern[1000001] = ;

scanf(

"%s\n

", (char *)&string

);

intn;

scanf("%d

", &n);

for(int i=0; i)

else

} else

else

}}

return0;

}

c語言 KMP 串的模式匹配 25分

本博文源於浙江大學 資料結構 此題的解答是對kmp的演算法的應用,直接將kmp演算法copy,稍微裁剪一下就行了。c語言浙大版 kmp模式串匹配實現 直接按照此修改,沒有太大難度。kmp實現 include include include typedef int position define no...

7 7 串的模式匹配 25分

給定兩個由英文本母組成的字串 string 和 pattern,要求找到 pattern 在 string 中第一次出現的位置,並將此位置後的 string 的子串輸出。如果找不到,則輸出 not found 本題旨在測試各種不同的匹配演算法在各種資料情況下的表現。各組測試資料特點如下 輸入第一行給...

浙大資料結構 KMP 串的模式匹配 25 分

給定兩個由英文本母組成的字串 string 和 pattern,要求找到 pattern 在 string 中第一次出現的位置,並將此位置後的 string 的子串輸出。如果找不到,則輸出 not found 本題旨在測試各種不同的匹配演算法在各種資料情況下的表現。各組測試資料特點如下 資料0 小規...