社区
工具平台和程序库
帖子详情
kmp算法
sunvin
2003-10-01 12:14:20
解决kmp算法的NEXT,NEXTVAL值时,有什么方法可以直接判定呢?必须用定义吗?NEXTVAL值一定要在NEXT值算出后才可以求出吗?
...全文
48
3
打赏
收藏
kmp算法
解决kmp算法的NEXT,NEXTVAL值时,有什么方法可以直接判定呢?必须用定义吗?NEXTVAL值一定要在NEXT值算出后才可以求出吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Skt32
2003-10-04
打赏
举报
回复
回复人: mvmouse(mouse) ( ) 信誉:100 2003-8-6 22:48:34 得分:100
#include <string.h>
//KMP算法
int FindingString(const char* lpszSour, const char* lpszFind, int nStart /* = 0 */)
{
// ASSERT(lpszSour && lpszFind && nStart >= 0);
if(lpszSour == NULL || lpszFind == NULL || nStart < 0)
return -1;
int m = strlen(lpszSour);
int n = strlen(lpszFind);
if( nStart+n > m )
return -1;
if(n == 0)
return nStart;
int* next = new int[n];
//得到查找字符串的next数组
{
n--;
int j, k;
j = 0;
k = -1;
next[0] = -1;
while(j < n)
{
if(k == -1 || lpszFind[k] == '?' || lpszFind[j] == lpszFind[k])
{ j++;
k++;
next[j] = k;
}
else
k = next[k];
}
n++;
}
int i = nStart, j = 0;
while(i < m && j < n)
{
if(j == -1 || lpszFind[j] == '?' || lpszSour[i] == lpszFind[j])
{
i++;
j++;
}
else
j = next[j];
}
delete []next;
if (j >= n)
return i-n;
else
return -1;
}
tolixiaohui
2003-10-01
打赏
举报
回复
yes!
jet9600
2003-10-01
打赏
举报
回复
这里无所谓定义,nextval的确定也没有必要先知道next,
把教材看十遍你就知道了。
KMP算法
算法
KMP算法
KMP
算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP算法
KMP
C++实现的
KMP算法
用C++语言实现的
KMP算法
。经过调试。供广大算法学习者参考。
kmp算法
实现
KMP算法
实现
KMP算法
实现
KMP算法
实现
KMP算法
实现
[C/算法]字符串匹配(BF算法的改进算法:
KMP算法
和BM算法)
实现BF算法的改进算法:
KMP算法
和BM算法; 对上述3个算法进行时间复杂性分析,并设计实验程序验证分析结果。 附件中 3.3.h BF算法代码 3.5.h
KMP算法
代码 3.12.h BM算法代码
java算法大全(含源码包)
5. **字符串处理**:如
KMP算法
、Rabin-Karp算法,用于字符串匹配;还有Trie树、后缀数组等,用于高效地处理大量字符串数据。 6. **动态规划**:这是一种解决问题的策略,通过将大问题分解为小问题来求解,如背包...
工具平台和程序库
24,854
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章