hdu2594 KMP
2015-08-11 11:02
169 查看
2个字符长合并在一起即可。要注意next
的值要小于初始的两个字符串的长度;
的值要小于初始的两个字符串的长度;
//next[]存的是之前相同的长度。 //也是位置,只是s[i]不一定和s[next[i]]相同 //但是i之前的和next[i]之前相同的个数==next[i]; #include<stdio.h> #include<string.h> #define maxn 50010 char s1[maxn*2],s2[maxn]; int next[maxn*2],fs1,fs2,len; void getnext() { int j,k; j=0; k=-1; next[0]=-1; while(j<len) { if(k==-1||s1[j]==s1[k]) { j++; k++; next[j]=k; } else k=next[k]; } } void kmp() { int i,j; getnext(); j=len; while(next[j]>fs1||next[j]>fs2) j=next[j]; if(next[j]==0) printf("0\n"); else { for(i=0;i<next[j];i++) printf("%c",s1[i]); printf(" %d\n",next[j]); } } int main() { int i,j; while(scanf("%s %s",s1,s2)!=EOF) { fs1=strlen(s1); fs2=strlen(s2); int k=0; strcat(s1,s2); len=fs1+fs2; //printf("%s\n",s1); kmp(); } }
相关文章推荐
- 安装Windows 10商店应用而不切换至微软账户的两种方法
- Ubuntu 64 + IntelliJ IDEA + Genymotion 搭建Android开发环境
- svn简易操作
- hdoj畅通工程
- 在线画时序图的工具:Web Sequence Diagrams ,支持实时生成预览图
- [leetcode-101]Symmetric Tree(c++)
- codeforce #200 div2 的水题三道
- HDU_3172_VirtualFriends
- 算法竞赛入门经典: 第四章 函数与递归 4.6解二元一次方程
- Android AnimationDrawable动画与APP启动引导页面
- 浅谈信息无障碍人才的培养
- [ Tomcat ] 自动更新脚本
- Android 5.0 API新增和改进
- swift-02代码流程的控制
- swift-02代码流程的控制
- HDU 4740 The Donkey of Gui Zhou
- 在 fragment 里面调用 findViewById
- oracle数据库问题集
- Chromium多进程架构初探-兼谈Android平台版本
- 3.1.4 枚举类型