字符串 KMP HDU 2203
来源:互联网 发布:移民新西兰 知乎 编辑:程序博客网 时间:2024/05/17 08:03
#include <stdio.h>#include <string.h>/*AABCDCDAAASDASDF题意:循环 思路:KMP 用两倍的长度去 KMP 。首先 判断第一个串的长度是不是 比第二个长 */const int N = 200005;char a[N],b[N];int next[N];int lena,lenb;void getNext(){int j=-1;next[0]=-1;for(int i=1;i<lenb;i++){while(j>=0 && b[i]!=b[j+1])j=next[j];if(b[i]==b[j+1])j++;next[i]=j;}/*for(int i=0;i<len;i++)printf("%d ",next[i]);printf("\n"); */ }int KMP(){int j=-1;for(int i=1;i<lena;i++){while(j>=0 && a[i]!=b[j+1])j=next[j];if(a[i]== b[j+1])j++;if(j==lenb-1)return 1;}return 0;}int main(){while(~scanf("%s%s",a,b)){lena=strlen(a);lenb=strlen(b);if(lena<lenb){printf("no\n");continue;}for(int i=lena;i<2*lena;i++)a[i]=a[i-lena];lena=lena*2;getNext();if(KMP()) printf("yes\n");else printf("no\n");}return 0;}
0 0
- 字符串 KMP HDU 2203
- 字符串 KMP HDU 1711
- 字符串 KMP HDU 4749
- 字符串 KMP HDU 1686
- 字符串 KMP HDU 2087
- 字符串 KMP HDU 3746
- 字符串 KMP HDU 2594
- HDU 1686 Kmp(字符串匹配)
- hdu 1867 链接字符串+kmp
- hdu 2203 (kmp)
- HDU-2203(KMP)
- HDU 2203 kmp
- hdu 2203(KMP)
- HDU 2203 KMP
- HDU 2203 KMP
- HDU 2203(KMP算法)
- HDU 3374 KMP +字符串最小表示
- hdu 1686 Oulipo kmp字符串比较
- Java socket编程
- C++数据结构 之 链表_Linked List
- unity3d mask
- 用iSlider实现手机端图片轮转
- 【建议28:理解延迟求值和主动求值之间的区别】
- 字符串 KMP HDU 2203
- tomcat集群配置
- jquery 教程
- Window之消息循环机制
- Codeforces404C【构造】
- nagios 部署笔记
- JNI/NDK开发指南(七)---调用构造方法和父类实例方法
- linux添加超级管理员用户,修改,删除用户
- 关于linux load average的深入了解