hdu2203 KMP水题
来源:互联网 发布:lamb动作数据百度云 编辑:程序博客网 时间:2024/06/05 09:02
两种方法 第一种是纯粹KMP
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
char str1[200010],str2[100010];
int next[100010];
int get()
{
next[0]=-1;
int j=0;
int k=-1;
int len=strlen(str2);
while(j<len-1)
{
if(k==-1||str2[k]==str2[j])
{
j++;
k++;
next[j]=k;
}
else k=next[k];
}
return 0;
}
int main()
{
int i,j;
while(~scanf("%s%s",str1,str2))
{
get();
char str[100010];
strcpy(str,str1);
strcat(str1,str);
//printf("&&&&\n");
int len1=strlen(str1);
int len2=strlen(str2);
int i=j=0;
while(i<len1&&j<len2)
{
if(j==-1||str1[i]==str2[j])
{
i++;
j++;
}
else j=next[j];
}
if(j==len2) printf("yes\n");
else printf("no\n");
}
return 0;
}
下面是用了STL里面的函数
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char str1[200010],str2[100010],str[100010];
int i,j;
while(~scanf("%s%s",str1,str2))
{
strcpy(str,str1);
strcat(str1,str);
if(strstr(str1,str2)) printf("yes\n");
else printf("no\n");
}
return 0;
}
- hdu2203 KMP水题
- hdu2203 kmp
- HDU2203 KMP
- hdu2203之KMP入门
- hdu2203亲和串(kmp)
- hdu2203 亲和串 KMP
- HDU2203 亲和串【KMP】
- HDU2203 亲和串 KMP
- hdu2203(KMP模板)
- hdu2203亲和串(kmp+)
- HDU2203:亲和串(KMP)
- KMP(1)--hdu2203(简单KMP模板)
- hdu2203 KMP算法运用(重要)
- HDU2203-亲和串-KMP模板题
- hdu2203
- hdu2203
- hdu2203
- hdu2203
- Linux下的负载均衡19心得
- FFMPEG结构体分析 AVFrame
- 什么时间,开个博客
- ajaxfileupload文件上传返回值处理 ajaxfileupload.js + spring mvc文件上传
- hdu 4915 括号匹配+巧模拟
- hdu2203 KMP水题
- Android JNI编程学习笔记(二)——深入了解NDK
- Android中怎么使图片显示
- 数据结构之广义表(扩展线性链表)的基本操作
- Linux命令--ps
- MATLAB 基础
- js的语法
- 反转链表
- 【cocos2d-x游戏开发】坐标系详解