数据结构实验之串一:KMP简单应用
来源:互联网 发布:户口本查询软件 编辑:程序博客网 时间:2024/04/28 14:23
Problem Description
Input
Output
Example Input
abca12345645abcddd
Example Output
14-1
#include<stdio.h>#include<string.h>char str1[1000000], str2[1000000];int next[1000001];void getnext (int len2){ int j,k; j=0;k=-1; next[j]=k; while(j<len2) { if(k==-1||str2[j]==str2[k]) { next[++j]=++k; } else { k=next[k]; } }}
int kmp_count(int len1, int len2){ int i,j; int ans=0; j=0; getnext(len2); for(i=0;i<len1;i++) { while(j>0&&str2[j]!=str1[i]) { j=next[j]; } if(str1[i]==str2[j]) { j++; } if(j==len2) { ans=i-len2+1+1; break; } } return ans;}
int main(){ int len1,len2; int ans; while(scanf("%s%s",str1,str2)!=EOF) { memset(next,0,sizeof(next)); len1=strlen(str1); len2=strlen(str2); ans=kmp_count(len1,len2); if(ans==0) printf("-1\n"); else printf("%d\n",ans); } return 0;}
- KMP算法 --数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT 2272 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT2772数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用 (sdut oj2772)
- 数据结构实验之串一:KMP简单应用
- sdut oj2772 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT 2772 数据结构实验之串一:KMP简单应用
- Java专家系列:CPU Cache与高性能编程
- 关于Objdump指令的解释
- Retrofit2.0起步篇
- Java对象的序列化与反序列化
- 用C语言画个心
- 数据结构实验之串一:KMP简单应用
- pat甲级 1121. Damn Single (25)
- 数据结构实验之串二:字符串匹配
- TCP/IP摘要
- MySQL最大连接数设置
- 铺地毯
- 华硕笔记本bios设置禁用uefi后使用u盘装系统方法
- sizeof和strlen的区别
- CVE-2016-1503 漏洞分析