KMP演算法求在給定字串中與查詢字串匹配的個數

2021-06-25 14:22:08 字數 898 閱讀 3939

題目:給定乙個文字字串和查詢字串,找出在文字字串中與查詢字串匹配的個數

思路:利用kmp演算法,求出查詢字串的next陣列,之後在文字字串中進行查詢

**:#include #include using namespace std;

//kmp演算法得到匹配的個數

int kmpcount(char* strtarget,char* strpattern,int next)

else if (ncurp < npatternlen)

else

}} return ncount;

}void getnext_count(char* strpattern,int next)

else

}}int main()

{ char strtarget[50];

cout<<"input target string:";

cin>>strtarget;

char strpattern[20];

cout<<"input strpattern string:";

cin>>strpattern;

int npatternlen = strlen(strpattern);

//求匹配字串的匹配個數

//多存放一位,表示當匹配成功時匹配字串向後移動的位置

int* next_count = new int[npatternlen+1];

getnext_count(strpattern,next_count);

int npatterncount = kmpcount(strtarget,strpattern,next_count);

if (npatterncount == -1)

{ cout<<"no pattern!"<

在給定字串中找出單詞

在給定字串中找出單詞 單詞 由大寫字母和小寫字母字元構成,其他非字母字元視為單詞的間隔,如空格 問號 數字等等 另外單個字母不算單詞 找到單詞後,按照長度進行降序排序,排序時如果長度相同,則按出現的順序進行排列 然後輸出到乙個新的字串中 如果某個單詞重複出現多次,則只輸出一次 如果整個輸入的字串中沒...

KMP 刪除字串中給定的字串

includeusing namespace std define nsiz 1000 int next nsiz char str1 nsiz char str2 nsiz void getnext char str,int n int i 0,j 1 next i 1 while i n els...

求給定字串中的單詞數

1.題目 給定乙個字串,單詞以 或 t 間隔,返回字串中的單詞個數。如輸入 t ab tc drf e ffrt tert 輸出為6。2.解答 1 我的思路 遍歷字串,遇到非 或 t 則count 然後while迴圈跳過之後的所有非 或 t 如果是 或 t 然後while迴圈跳過所有的 或 t 這樣...