【HDU 2203】亲和串
题意
给你一个字符串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 ;
}
【HDU 2203】亲和串的更多相关文章
- HDU 2203 亲和串(KMP)
		
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=2203 题目: 亲和串 Time Limit: 3000/1000 MS (Java/Others) ...
 - hdu 2203:亲和串(水题,串的练习)
		
亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
 - HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)
		
Problem Description 人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现 ...
 - hdu 2203 亲和串
		
把T串扩展成两倍 然后KMP 注意T的长度要大于P的长度 #include <iostream> #include <cstdio> #include <cstri ...
 - hdu  2203亲和串 (kmp)
		
#include<cstdio>#include<iostream>#include<cstring>#include<string>using nam ...
 - HUD 2203 亲和串
		
HUD 2203 亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768K (Java/Others) [题目描述 - ...
 - HDOJ 2203 亲和串 【KMP】
		
HDOJ 2203 亲和串 [KMP] Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
 - hdoj 2203 亲和串
		
亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
 - HDU 2203 亲串(kmp)
		
Problem Description 随着人们年龄的增长更大,更聪明还是越大越愚蠢,这是一个值,相同的问题Eddy也一直在思考,由于他在非常小的时候就知道亲和串怎样推断了,可是发现,如今长大了却不知 ...
 - HDU  2203  kmp
		
http://acm.hdu.edu.cn/showproblem.php?pid=2203 亲和串 Time Limit: 3000/1000 MS (Java/Others) Memory ...
 
随机推荐
- 栈和队列的面试题Java实现【重要】
			
栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...
 - np问题
			
NP(np) Time Limit:1000ms Memory Limit:64MB 题目描述 LYK 喜欢研究一些比较困难的问题,比如 np 问题.这次它又遇到一个棘手的 np 问题.问题是这个样子 ...
 - Unity制作FPS Demo
			
等到把这个Unity FPS Demo[僵尸杀手]完成后再详细补充一下,使用Unity制作FPS游戏的经历,今天做个标识.
 - Unity-WIKI 之 SplashScreen
			
组件功能 在屏幕上的一个启动画面消失,等待几秒钟(或等待用户输入),然后淡出,下一个场景加载. 组件源码 using UnityEngine; using System.Collections; // ...
 - 使用clone( )和Cloneable接口
			
由Object类定义的绝大部分方法在本书其他部分讨论.而一个特别值得关注的方法是clone( ).clone( )方法创建调用它的对象的一个复制副本.只有那些实现Cloneable接口的类能被复制. ...
 - 实现Maya FEM节点
			
准备实现FEM节点. 发现一种让自定义的Locator以及它的变换节点自动命名的方法.代码如下: void FEMSimulationNode::postConstructor() { MFnDepe ...
 - WebApi 返回小驼峰式 json 格式,并格式化日期
			
from:http://blog.csdn.net/magiccops/article/details/42969363 屏蔽默认返回xml格式:Global文件加:GlobalConfigurati ...
 - UICollectionView使用
			
本文原文 原文转自 1.1. Collection View 全家福: UICollectionView, UITableView, NSCollectionView n 不直接等效于NSColl ...
 - usb驱动开发2之代码地图
			
USB只是Linux庞大家族里的一个小部落,host controller是它们的族长,族里的每个USB设备都需要被系统识别.下图显示包含一个USB接口的USB鼠标导出的结果. USB系统中的第一个U ...
 - 第二章 rabbitmq在mac上的安装
			
下载页: http://www.rabbitmq.com/install-standalone-mac.html 1.下载页面首部的文件(页面下载可能比较慢,使用迅雷下载就好),之后解压到一个合适的路 ...