亲和串
来源:互联网 发布:阿芙玫瑰焕白系列 知乎 编辑:程序博客网 时间:2024/05/30 04:58
人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。
亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。
亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么我们就说s2 是s1的亲和串。
AABCDCDAAASDASDF
yesno
根据亲和串的定义,分别求s1在s2中及相反的最大子序列长度,如果相加之和为s2的长度,就是亲和串。
#include<cstdio>#include<cstring>#include<algorithm>#define maxn 100010using namespace std;char s1[maxn];char s2[maxn];int ne[maxn];int KMP(char a[],char b[]){ int k; int la=strlen(a); int lb=strlen(b); for(int i=0,j=-1;i<=lb;i++,j++){ ne[i]=j; while(j!=-1&&b[i]!=b[j]) j=ne[j]; } for(int i=0,j=0;i<=la;i++,j++){ if(i==la){ k=j; } while(j!=-1&&a[i]!=b[j]) j=ne[j]; } return k;}int main(){ while(~scanf("%s%s",&s1,&s2)){ int la=KMP(s1,s2); int lb=KMP(s2,s1); int k=strlen(s2); if(la+lb==k) printf("yes\n"); else printf("no\n"); } return 0;}
0 0
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- 亲和串
- hud_ACM_2203_亲和串
- HDU 2203 亲和串
- hdu2203 亲和串
- HDU 2203 亲和串
- HDU - 2203 亲和串
- hdu 2203 亲和串
- HDU2203:亲和串
- Hystrix(Netflix)使用教程-1
- Java总结(一)
- JZOJ 3.25 1420——【汕头市选2012初中组】求和(sum)
- MSP430F5529 生成PWM波 with CCS
- SpringData学习笔记
- 亲和串
- jadclipse安装
- jquery点击空白处关闭div层
- QuartusII中Design partion功能的使用
- android图片压缩的三种方式
- java之Cookie案例--记录上次访问时间
- Editplus设置编码
- CentOS7配置中文输入法
- OsiriX User Manual