給定兩個由英文本母組成的字串 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 小規...