kmp算法模板
来源:互联网 发布:数据流程图 编辑:程序博客网 时间:2024/06/15 20:01
#include<iostream>#include<algorithm>#include<cstring>using namespace std;void getNext(char *s,int *next){ int i=0,j=-1,len=strlen(s); next[0]=-1; while(i<len){ if(j==-1||s[i]==s[j]) next[++i]=++j; else j=next[j]; }}int kmp_Index(char *s1,char *s2,int *next){///获得字符串s2在s1中首次出现的位置 int l1=strlen(s1),l2=strlen(s2); int i=0,j=0; while(i<l1&&j<l2){ if(j==-1||s1[i]==s2[j]) i++,j++; else j=next[j]; } if(j==l2) return i-j+1; return -1;}int kmp_Count(char *s1,char *s2,int *next){///获得字符串s2在s1中出现的次数 int i=0,j=0,ans=0,l1=strlen(s1),l2=strlen(s2); while(i<l1){ if(j==-1||s1[i]==s2[j]) i++,j++; else j=next[j]; if(j==l2) ans++,j=0; } return ans;}int main(){ char str[10],str1[10]; int next[10]; cin>>str>>str1; getNext(str1,next); ///for(int i=0;i<strlen(str1);i++) ///cout<<next[i]<<" "; cout<<kmp_Index(str,str1,next)<<endl; cout<<kmp_Count(str,str1,next)<<endl;}
阅读全文
0 0
- 【KMP】KMP算法模板
- kmp算法模板
- kmp算法模板
- KMP算法模板
- KMP算法模板
- KMP算法(模板)
- KMP算法模板
- KMP算法标准模板
- KMP算法模板
- KMP算法模板
- KMP算法模板
- KMP算法模板
- KMP算法模板
- KMP 算法模板
- kmp算法模板
- kmp算法模板
- KMP算法模板
- KMP算法模板
- MINI2440 MPLL
- 国家级期刊发表怎样省钱
- c语言 avl 记载
- bash: /etc/ld.so.conf: Permission denied
- Fibonacci数列问题
- kmp算法模板
- HDFS数据安全性如何保证
- Hibernate:悲观锁和乐观锁
- postgresql 导入sql
- CentOS 5.X 开机流程简介
- Javascript字符串模板简单实现(二)
- Second Day——Python 学习
- sun.misc.BASE64Encoder问题
- node.js在windows下安装