题意

给你一个字符串s1,字符串s2,s1循环移位,使s2包含在s1中,则s2 是s1的亲和串

分析

把s1自身复制一遍接在后面。

方法一: 用strstr函数。

方法二: KMP算法。

方法三: 用C++的string的find函数。

代码

方法一:

#include<cstdio>
#include<cstring>
char s1[],s2[];
int len;
int main()
{
while(~scanf("%s",&s1))
{
len=strlen(s1); for(int i=; i<len; i++)
s1[len+i]=s1[i]; scanf("%s",&s2); if(strstr(s1,s2)-s1>=) printf("yes\n");
else printf("no\n"); memset(s1,,sizeof(s1));
memset(s2,,sizeof(s2));
}
return ;
}

方法二:

#include<cstdio>
#include<cstring>
char S[],T[];
int next[],len; void getNext(){
int i,k=-;
next[]=k;
for(i=;T[i];i++){
while(k>= && T[i]!=T[k+]) k=next[k];
if (T[i]==T[k+]) k++;
next[i]=k;
}
} int KMP(){
int i=,j=;
while(i==-||S[j]&&T[i]){
if(i==-||S[j]==T[i]){
i++;
j++;
}else
i=next[i];
}
if(!T[i])
return j-i+;
return -;
} int main()
{
while(~scanf("%s",S))
{
len=strlen(S);
for(int i=len;i<*len;i++)
S[i]=S[i-len]; scanf("%s",T);
getNext();
if(KMP()<) printf("no\n");
else printf("yes\n");
memset(S,,sizeof(S));
memset(T,,sizeof(T));
}
return ;
}

方法三

#include<iostream>
using namespace std; int main()
{
string P,T;
while(cin>>P>>T)
{
P+=P;
if(P.find(T)!=string::npos)cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return ;
}

最新文章

  1. WCF学习之旅—WCF第二个示例(七)
  2. iOS第三方Api及常用框架总结
  3. Centos下防止暴力破解密码 - Denyhost
  4. 。net 文件依赖缓存
  5. Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询
  6. java连接数据库的模糊查询
  7. Timestamp 使用
  8. SVN 树冲突的解决方法(Ubuntu 环境)
  9. DetectEncoding
  10. 在IIS上发布项目后浏览时报的错:Unable to make the session state request to the session state server
  11. apache开源项目--TIKA
  12. easyui源码翻译1.32--MenuButton(菜单按钮)
  13. arm-linux-gnueabi和arm-linux-gnueabihf 的区别
  14. Unbutu14.04 启用 root 并禁用guest
  15. DotNetCore跨平台~问题~NETCoreAPP, Version=v1.0&#39; compatible with one of the target runtimes: &#39;win10-x64
  16. iostat磁盘IO命令详解
  17. win7与centos虚拟机的共享文件夹创建
  18. Excel透视技巧-三级分类统计名单、分类统计数据
  19. Python高级特性:迭代器和生成器
  20. scrapy-redis(七):部署scrapy

热门文章

  1. 在mac os下的Apache服务器的cgi中运行python
  2. UESTC 916 方老师的分身III --拓扑排序
  3. C#泛型简化代码量示例
  4. .NET深入 c#数据类型2
  5. linux下安装php的imagick扩展模块(附php升级脚本)
  6. How to get date from OAMessageDateFieldBean
  7. 【网站搭建教程】黑手VIP卡盟搭建教程(无KEY)
  8. Android 动画之TranslateAnimation应用详解
  9. Android 获取手机Mac地址,手机名称
  10. swift第二季高级语法