有关C++字符串KMP匹配问题
来源:互联网 发布:网络电影怎么发行 编辑:程序博客网 时间:2024/06/18 04:02
网址:http://zhidao.baidu.com/question/496978699945785084.html
#include <iostream>using namespace std;void GetNext(int longth,char T[],int (&next)[5]){int k=-1,j=0;next[0]=-1;while(j<longth){if(k==-1 || T[k]==T[j]){++k;++j;next[j]=k;}elsek=next[k];}}int KMP(char S[],char T[],int next[5]){int i=0,j=0;while((S[i]!='\0')&&(T[j]!='\0')){if(S[i]==T[j]){++i;++j;}else{j=next[j];if(j==-1){++i;++j;}}}if(T[j]=='\0') {cout<<"i="<<i<<endl;return (i-j+1);}else return 0;}int main(){char S[10]="abcabcacb";char T[6]="abcac";cout<<T[0]<<endl;int next[5];GetNext(5,T,next);cout<<"T[0]="<<T[0]<<endl; //这里输出的是空格,为什么呢?应该输出是a for(int i=0;i<5;i++)cout<<"next["<<i<<"] = "<<next[i]<<endl; //这里i=0,j=0 跳过了上面while((S[i]!='\0')&&(T[j]!='\0'))循环cout<<KMP(S,T,next)<<endl;return 0;}
为什么会这样?
0 0
- 有关C++字符串KMP匹配问题
- 【C++】KMP字符串匹配
- kmp字符串匹配C实现
- [C++]KMP算法匹配字符串
- 字符串匹配问题 kmp算法C语言实现
- C语言 字符串匹配问题,KMP函数-失配函数
- 字符串匹配问题:KMP算法
- 字符串匹配问题-KMP总结
- KMP字符串模式匹配的C实现
- KMP字符串匹配算法C语言实现
- <C/C++算法>字符串匹配---KMP算法
- kmp算法字符串匹配C语言实现
- c语言:字符串匹配的KMP算法
- C语言KMP字符串匹配算法
- C语言实现字符串匹配KMP算法
- kmp字符串匹配模板(c++)
- KMP算法解决字符串匹配问题
- KMP算法——字符串匹配问题
- HDU 5091 Beam Cannon(扫描线 + 线段树)
- 常见机器学习算法思想简单梳理
- Struts2-----5、Struts2实现Action
- 关于用户控件和自定义控件的区别的总结
- Linux下I2C驱动架构全面分析
- 有关C++字符串KMP匹配问题
- UVA10717 - Mint(欧几里德求最小共倍数)
- [Erlang危机](5.1.1)内存
- 设计模式之静态代理&动态代理
- st(state-threads) coroutine和setjmp/longjmp的关系
- Eclipse中文字符太小问题
- ASP.NET会话(Session)具体配置
- 打工比创业更苦
- EM算法