這也是一道hash的演算法題, 下面給出ac**:求模式串在待匹配串的出現次數。input第一行是乙個數字t,表明測試資料組數。output之後每組資料都有兩行:第一行為模式串,長度不大於10000;第二行為待匹配串,長度不大於1000000。所有字串只由大寫字母組成。
每組資料輸出一行結果。sample input4sample outputabcd
abcd
abaabababa
cdcdcdc
cdckmp
*****
1300
#include#include#define ull unsigned long long
char ch1[1000009];
ull hash[1000009];
char ch2[10009];
const int p=300;
int main()
printf("%d\n",cnt);
}return 0;
}
KMP 計算模式串出現的次數
參考資料 從頭到尾徹底理解kmp 實現 182538 solution 一 問題描述 判斷一段文字 原串,str src,長度為len src 裡面是不是存在那麼一些特殊的文字 模式串,str ptn,長度為len ptn 如若存在,計算該模式串出現的次數。輸入 第一行乙個整數n,表示測試資料組數。...
求乙個子串在整串中出現的次數。
需求 已知整串,nbaernbatynbauinbaopnba 求乙個子串 nba 在乙個整串中出現的次數。思路 1 利用indexof 判斷子串是否在整串中存在,若存在則記錄其位置。2 利用剩餘字串繼續查詢。3 設定計數器記錄 package string public class test2 方...
統計子串在主串中出現的次數
思路 定義兩個指標p,q p指向主串首位址,q指向子串首位址。如果對應的字元相等,那麼 p,q,即兩個指標都向後移乙個單位再繼續比較 p和 q,否則q回到子串的首位址,只把指標p向後移動乙個單位。依次類推,如果 q 0 說明子串已經終止,子串在主串中出現的次數加1,直到主串終止為止。includei...