两种方法     首先是纯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水的问题的更多相关文章

  1. poj-2406(kmp水题)

    题意:定义一个a*b=字符串a连接字符串b:给你一个字符串s,问你这个字符串最多能用多少个字符串t连接得到:例如:aaaa=4个a构成: 解题思路:kmp水题,next数组除了查找字串以外最广泛的一种 ...

  2. POJ 3641 Oulipo KMP 水题

    http://poj.org/problem?id=3461 直接KMP就好.水题 #include<cstdio> #include<cstring> const int M ...

  3. hdu 4763 Theme Section(KMP水题)

    Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. (KMP 水)Wow! Such Doge! -- hdu -- 4847

    http://acm.hdu.edu.cn/showproblem.php?pid=4847 Wow! Such Doge! Time Limit:1000MS     Memory Limit:32 ...

  5. HDU2203(KMP入门题)

    亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. 计蒜客 阿里天池的新任务—简单( KMP水 )

    链接:传送门 思路:KMP模板题,直接生成 S 串,然后匹配一下 P 串在 S 串出现的次数,注意处理嵌套的情况即可,嵌套的情况即 S = "aaaaaa" ,P = " ...

  7. [hdu2594]kmp水题

    题意:求最长的a的前缀同时满足是b的后缀,把a,b连在一起,kmp跑一下,迭代next直到长度小于等于a,b长度的最小值为止,即为答案. #pragma comment(linker, "/ ...

  8. [hdu2087]kmp水题

    题意:求模板串在文本串中出现的次数(位置无交叉).只需在找到的时候把模板串指针归0即可. #pragma comment(linker, "/STACK:10240000,10240000& ...

  9. HDU - 2203 KMP水题

    循环移位的套路操作就是一份折开变两份 /*H E A D*/ void match(){ int n=strlen(T+1); int m=strlen(P+1); int j=0; rep(i,1, ...

随机推荐

  1. Android - 和其他APP交互

    一个Android app通常有好几个activity.每个activity显示一个可以让用户执行特殊操作(例如看地图,照相等)的界面.要让用户从一个activity切换到另一个activity,ap ...

  2. C# WinForm dataGridView 技巧小结

    1.不显示第一个空白列RowHeaderVisible属性设置为false 2.点击cell选取整行SelectinModel属性FullRowSelectRowSelectinModel属性设置或用 ...

  3. Chapter 1 Securing Your Server and Network(8):停止未使用的服务

    原文:Chapter 1 Securing Your Server and Network(8):停止未使用的服务 原文出处:http://blog.csdn.net/dba_huangzj/arti ...

  4. LeetCode之Sort List

    称号:Sort a linked list in O(n log n) time using constant space complexity. 对一个单链表进行排序,要求时间复杂度为O(n log ...

  5. 如何识别SQL Server中的CPU瓶颈

    原文:如何识别SQL Server中的CPU瓶颈 原文出自: http://www.mssqltips.com/sqlservertip/2316/how-to-identify-sql-server ...

  6. 如何对 GIT 分支进行规划? (转)

    项目背景: 该项目是在2011年11月份使用Asp.net三层帮荷兰某个客户开发的机票预定系统 该客户主要是做中国与欧洲的旅行社业务,特别是最近两年由于中国的发展因此客户也越来越重视机票业务 于是他们 ...

  7. Android开发在路上:少去踩坑,多走捷径(转)

    最近一朋友提了几个Android问题让我帮忙写个小分享,我觉得对新人还是挺有帮助的,所以有了这个小分享. 1. 目前, Android APP开发完成后,通常需要在哪些机型上进行测试? 2. 目前, ...

  8. 批处理删除IIS的everyone、users的访问权限

    原文 批处理删除IIS的everyone.users的访问权限 以下批处理代码功能,实现的是,删除C盘的everyone.users用户对IIS的权限. 一.删除C盘的everyone的权限 cd/  ...

  9. Google I/O 2014? No,Android I/O 2014

    "你当然能够不相信理想,可是你也应该相信.有一些人相信理想"  google I/O今日公布了很多新品,罗列为: Android Wear,Android Auto.Android ...

  10. D - Cow Ski Area

    Description Farmer John's cousin, Farmer Ron, who lives in the mountains of Colorado, has recently t ...