在大字符串寻找共出现几次子串的位置(KMP算法C写法)
2013-02-27 13:57
369 查看
int matchCount(char* sourceString, char* subString) { int subCnt[100]; subCnt[0] = 0; unsigned int len1 = strlen(sourceString); unsigned int len2 = strlen(subString); for (int i=1, int j=0; i < len2; i++) { while(j>0 && subString[j] != subString[i]) { j=subCnt[j-1]; } if (subString[i] == subString[j]) { j++; } subCnt[i]=j; } int count =0; for (i=0, j=0; i<len1; i++) { while(j>0 && subString[j] != sourceString[i]) { j = subCnt[j -1]; } if (subString[j] == sourceString[i]) { j++; if (len2 == j) { count++; } } } return count; }
相关文章推荐
- 在大字符串寻找第index次出现子串的位置(BF算法OC写法)
- C# 3.0 Cookbook:一、字符与字符串处理(3):在一个字符串内寻找另一个字符串出现的所有位置
- 剑指offer——寻找字符串中只出现一次的第一个字符位置
- 从一个字符串中寻找某个字符最后出现的位置
- 函数strstr代码举例——从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL),没有就返回NULL。
- kmp算法 查找一个字符串在另一个字符串出现的位置
- KMP算法 计算短字符串在长字符串中的第一次出现的位置
- 在字符串中寻找目标最后一次出现的位置(python)
- 【php笔记-1】获取字符串里中文第一次出现的位置
- 练习 4-1 编写函数 strindex(s, t),它返回字符串 t 在 s 中最右边出现的位置。 如果 s 中不包含 t,则返回-1
- 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 获取一个子字符串第一次出现的位置
- Python函数——查找字符串第n次出现的位置
- js获取一个字符串中指定字符串第n次出现的位置
- Java 获取字符串中第N次出现的字符位置
- 输入字符串,找出该字符串中abc出现的位置
- 从给定字符串中寻找子串,如果存在子串,返回子串初始位置
- C语言rindex()函数:查找字符串并返回最后一次出现的位置
- php--查找字符串出现位置
- 给出一个字符串,找出其中只出现一次且位置最靠前的那个字符