hdu 2203 亲和串(给两个字符串s1,s2,问s2可不可能出现在以s1为循环节的串中)
来源:互联网 发布:网络兼职招聘 编辑:程序博客网 时间:2024/06/09 01:36
1.strcat函数,strcat(char *s , char *p);注意这里的s和p所指内存区域不可以重叠且s必须有足够的空间来容纳p的字符串
2.strcpy函数,strcpy(char *s,char *p),将p拷贝到s
3.代码:
#include<cstdio>#include<cstring>using namespace std;char s1[1000000],s2[100005],t[1000000];int len1,len2;//int LCPS[100005];int next[100005];void GetLCPS(){ int j=0; int k=-1; next[0]=-1; while(j<len2) { if(k==-1||s2[k]==s2[j]) { //LCPS[j++]=++k; j++; ++k; next[j]=k; } else { //if(k-1>=0) k=next[k]; //else // k=-1; } }}void KMP(){ int i=0; int j=0; while(i<len1&&j<len2) { if(j==-1||s1[i]==s2[j]) { j++; i++; } else j=next[j]; } if(j==len2) printf("yes\n"); else printf("no\n");}int main(){ while(scanf("%s%s",s1,s2)==2) { len1=strlen(s1); len2=strlen(s2); while(len1<len2) { strcpy(t,s1); strcat(s1,t); len1=strlen(s1); } strcpy(t,s1); strcat(s1,t); len1=strlen(s1); GetLCPS(); KMP(); } return 0;}
0 0
- hdu 2203 亲和串(给两个字符串s1,s2,问s2可不可能出现在以s1为循环节的串中)
- 40.给字符串s1、s2,在s1中找包含s2里所有字符的最小子串
- 给字符串s1、s2,在s1中找包含s2里所有字符的最小子串
- 统计s2字符串在s1字符串出现的次数
- 找s2在s1中第一次出现的位置
- 给定两个字符串s1,s2,请编写代码检查s2是否为s1旋转而成
- 编写一个函数,有两个参数function(string s1,string s2),找出字符串中s1中s2的个数
- 编写函数any(s1,s2),将字符串s2中任一字符在字符串s1中第一次出现的位置作为结果返回。
- 在S1字符串中删除S2字符串出现过的任意字符
- 练习2-5 编写函数any(s1,s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2的字符,则返回-1。
- 练习2-5 编写函数any(s1,s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回
- 练习 2-5 编写函数 any(s1, s2),将字符串 s2 中的任一字符在字符串 s1 中第一次 出现的位置作为结果返回。如果 s1 中不包含 s2 中的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2中的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2中的字符,则返回-1。
- 练习 2-5 编写函数 any(s1, s2),将字符串 s2 中的任一字符在字符串 s1 中第一次 出现的位置作为结果返回。如果 s1 中不包含 s2 中的字符,则返回-1
- squeeze(s1,s2),把字符串s1中与s2字符的相同的部分去掉
- 对比两个数组,如何得出s2中包含s1的数以及在s2中出现的个数,放入到二维数组s3中。
- 面试8之给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成
- Shiny应用基础(3):页面布局
- Objective-C学习-字典类型 NSDictionary 和 NSMutableDictionary
- opencv学习(三)书本《学习Opencv》(中文版)第四章的样例Ex4-1(opencv3.0.0+VS2012+win7)
- CTS Fail项目解决方法集锦
- 2015 多校联赛 ——HDU5349(水)
- hdu 2203 亲和串(给两个字符串s1,s2,问s2可不可能出现在以s1为循环节的串中)
- 从一千万条短信中找出重复次数最多的前10条
- 多线程、反射
- Ubuntu 14.04 下安装HTK工具箱时编译错误的解决
- Mac Eclipse ADT 配置JRE
- 【leetCode】Two Sum
- hdu4533 威威猫系列故事——晒被子
- iOS UI04_Delegate
- Codeforces 4A