亲和串

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 10862    Accepted Submission(s): 4940

Problem Description

人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。

亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。

Input

本题有多组测试数据,每组数据的第一行包含输入字符串s1,第二行包含输入字符串s2,s1与s2的长度均小于100000。

Output

如果s2是s1的亲和串,则输出"yes",反之,输出"no"。每组测试的输出占一行。

Sample Input

AABCD

CDAA

ASD

ASDF

Sample Output

yes

no

#include#include

using namespacestd;char a[200005];char b[100005];intlena,lenb;int next[100005];voidgetnext()

{int i=0,k=-1;

next[0]=-1;while(i

{if(k==-1||b[i]==b[k])

{

i++;

k++;

next[i]=k;

}else k=next[k];

}

}intKMP()

{

getnext();int i=0,j=0;while(i

{if(j==-1||a[i]==b[j])

{

i++;

j++;

}else j=next[j];if(j==lenb) return i-j+1;

}return -1;

}intmain()

{while(scanf("%s%s",a,b)!=EOF)

{

lena=strlen(a);

lenb=strlen(b);for(int i=lena;i

{

a[i]=a[i-lena];

}

lena+=lena;if(KMP()!=-1) printf("yes\n");else printf("no\n");

}return 0;

}

利用C自带函数

#include#include

using namespacestd;char a[200005];char b[100005];char t[100005];intmain()

{while(scanf("%s%s",a,b)!=EOF)

{

strcpy(t,a);

strcat(a,t);if(strstr(a,b)!=NULL) printf("yes\n");else printf("no\n");

}return 0;

}

原文:http://www.cnblogs.com/program-ccc/p/5199324.html

hdu2203java_HDU2203(KMP入门题)相关推荐

  1. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  2. poj-2406(kmp水题)

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

  3. POJ 3167 Cow Pattern ★(KMP好题)

    题意 给你一个数字序列S,再给一个数字序列pattern,S和pattern中的数字都是1到s(s<=25).每个序列里的数字都有个排名,也就是第几小,现在我们要用pattern来匹配S.在本题 ...

  4. POJ - 1469 COURSES (匈牙利算法入门题)

    题意: P门课程,N个学生.给出每门课程的选课学生,求是否可以给每门课程选出一个课代表.课代表必须是选了该课的学生且每个学生只能当一门课程的. 题解: 匈牙利算法的入门题. #include < ...

  5. 二叉树学习——简单入门题

    入门题一: 输入一颗二叉树,你的任务是按从上到下.从左到右的顺序输出各个节点的值.每个节点都按照从根节点到它的移动序列给出 (L表示左,R表示右).在输入中,每个节点的左括号和右括号之间没有空格,相邻 ...

  6. 数学入门题——《算法竞赛入门经典-训练指南》

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=94017#overview 代码链接:https://github.com/Yv ...

  7. [HNOI2002]营业额统计 Splay tree入门题

    [HNOI2002]营业额统计 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1588 [HNOI2002]营业额统计 Time Limit ...

  8. hdu 1312深搜入门题

    2019独角兽企业重金招聘Python工程师标准>>> Red and Black Problem Description There is a rectangular room, ...

  9. 【基础入门题031】三色球问题

    [基础入门题]2021.11.27 口袋中共有12个球,红白黑的个数分别3.3.6, 从中任取8个,问共有多少种可能的颜色搭配? 编程语言:包括但不限于Python 题目来源:派森特给站每日刷题频道 ...

最新文章

  1. 13张动图助你彻底看懂马尔科夫链、PCA和条件概率!
  2. How to judge if one OData model data is out of date
  3. 计算机 注册表 远程桌面,仅允许运行使用网络级别身份验证的远程桌面计算机连接失败处理方法(远程桌面连接)...
  4. [图]运动鞋用“囧”字做图案卖断货
  5. 深度学习的实用层面 —— 1.12 梯度的数值逼近
  6. 新疆师范大学计算机科学学院,新疆师范大学王炜教授亲临计科学院讲学——记计算机科学学院研究生院...
  7. android 客户端bks,Keytools Https双向认证(Android通用)
  8. 5.15 vs2019 静态编译_xmake v2.3.8 发布, 新增 Intel C++/Fortran 编译器支持
  9. oracle设置默认值为当前时间_把锁屏密码设置成当前时间,随时间永远变动!
  10. vue的视图化创建项目_vuecli 创建项目的方法,以及图像化操作【23】
  11. 【Java基础】建立Java面向对象编程OOP模型
  12. 叉乘点乘混合运算公式_《3D数学基础》提炼总结(四)向量运算(后)
  13. 做的好不如说得好,老板为什么喜欢听过程汇报?
  14. 2017青岛网络赛 C - The Dominator of Strings(AC自动机)
  15. thinkpad X1 2016 NMV固态硬盘 win7+win10双系统 GPT+UEFI启动 系统安装记录
  16. 80x86 微处理器
  17. 《聆听宇宙的歌唱》——超越故乡
  18. golang switch灵活写法
  19. Linux中使用shell脚本创建用户
  20. 单片机课程设计及项目下载

热门文章

  1. 用python开发的运维管理系统_python运维开发常用模块(一)psutil
  2. Android 4.4 KitKat 支持 u 盘功能
  3. [构造]triples I
  4. Mac老是自动关掉屏幕怎么办?
  5. Kotlin版注解处理器Annotation Processor
  6. 上位机使用C++通过ADS协议与倍福PLC通信例程-布尔变量的读取
  7. 单位内网访问外网的二种方式
  8. 主流大数据存储解决方案评析
  9. MDP 与 贝尔曼方程
  10. 【备忘】linux视频