HDU 2594 最长相同前后缀
Sample Input
clinton
homer
riemann
marjorie
Sample Output
0
rie 3
输入两个字符串 ,求最长相同前后缀
直接把两个字符串连接在一起求next就行了,唯一要注意的就是长度不能大于原来任一字符串的长度,如果长度大于了,要选择len1和len2中较小的一个输出。
# include <cstdio>
# include <cstring>
using namespace std ; char s1[] ;
char s2[] ;
char s3[] ;
int next[] ;
int len1 , len2; void getNext()
{
int j, k;
j = ; k = -; next[] = -;
while(j < len1+len2)
if(k == - || s1[j] == s1[k])
next[++j] = ++k;
else
k = next[k];
} int main ()
{
while (scanf("%s%s" , &s1 , &s2) != EOF)
{
len1 = strlen(s1) ;
len2 = strlen(s2) ;
strcat(s1 , s2) ;
getNext() ;
int i ;
for (i = ; i < next[len1 + len2] ; i++)
{
s3[i] = s1[i] ;
}
s3[i] = '\0' ;
if (next[len1 + len2])
{
if (next[len1 + len2] > len1 ||next[len1 + len2] > len2)
{
if (len1 > len2)
printf("%s %d\n" ,s2 ,len2) ;
else
{
s3[len1] = '\0' ;
printf("%s %d\n" ,s3 ,len1) ;
}
}
else
printf("%s %d\n" ,s3 ,next[len1 + len2]) ;
}
else
printf("0\n") ;
} return ;
}
HDU 2594 最长相同前后缀的更多相关文章
- HDU 6186 CS Course【前后缀位运算枚举/线段树】
[前后缀枚举] #include<cstdio> #include<string> #include<cstdlib> #include<cmath> ...
- KMP + 求相等前后缀--- POJ Seek the Name, Seek the Fame
Seek the Name, Seek the Fame Problem's Link: http://poj.org/problem?id=2752 Mean: 给你一个字符串,求这个字符串中有多少 ...
- HDU 2594(求最长公共前后缀 kmp)
题意是在所给的两个字符串中找最长的公共前后缀,即第一个字符串前缀和第二个字符串后缀的最长相等串. 思路是将两个字符串拼接在一起,然后直接套用 kmp 算法即可. 要注意用 next 会报编译错误,改成 ...
- HDU 2594 Simpsons’ Hidden Talents(KMP求s1前缀和s2后缀相同部分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594 题目大意:给两串字符串s1,s2,,找到最长子串满足既是s1的前缀又是s2的后缀,输出子串,及相 ...
- HDU 4763 Theme Section(KMP+枚举公共前后缀)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目大意: 给你一个字符串s,存在一个子串E同时出现在前缀.中间.后缀,即EAEBE这种模式,A ...
- HDU - 6096 :String (AC自动机,已知前后缀,匹配单词,弱数据)
Bob has a dictionary with N words in it. Now there is a list of words in which the middle part of th ...
- HDU 2594 Simpsons’ Hidden Talents(KMP的Next数组应用)
Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋)
HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3 ...
- 【HDU 2594 Simpsons' Hidden Talents】
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
随机推荐
- IDEA中设置Tab多行显示、打开过多自动关闭的方法
IDEA中默认Tab是单行显示的,而且默认允许同时打开10个Tab,继续打开Tab会根据规则关闭之前打开的Tab.但是可以通过设置来符合自己的使用习惯. 一.打开Tab过多自动关闭 1.选择File→ ...
- 求幂运算、多项式乘法及Horner法则的应用
一,两种不同的求幂运算 求解x^n(x 的 n 次方) ①使用递归,代码如下: private static long pow(int x, int n){ if(n == 0) return 1; ...
- 配置Arcengine10.1+java开发环境(Eclipse)
以下开发环境配置是假定用户已经安装了Java开发的IDE(Eclipse) 软件准备 (一)ArcEngine 10.1 安装包 提取码:poa0 (二)ArcGIS License Manager ...
- [C++]指针与引用(定义辨析)
1.定义: 1.1 &-----取地址运算符 功能:返变量的内存地址 Eg:int *p,m; 定义p为指向int类型变量的指针,同时定义变量m ...
- tomcat杂记
组成 Server –> Service –> Connector & Container( Engine –> Host –> Context( Wrapper( S ...
- C - Portals Gym - 102006C (网络流最小割)
题目链接:https://cn.vjudge.net/contest/283918#problem/C 题目大意:T个测试数据,然后给你一个字符串,每一个字符串包括‘s’,‘t’,‘o’,‘#’,‘. ...
- JobService相关
1.在构建JobInfo时,如果设置setPersisted(true),则需要应用申请RECEIVE_BOOT_COMPLETED权限. 这个权限只需要在应用首次安装时被授予,后面覆盖安装时便会默认 ...
- java生成TXT
1.由于公司需要生成如下格式TXT: var ovr_parameters={ "changeMainVideoList": [ ], "indexList": ...
- Graphql 相关 strapi -- Koa2
Graphql 相关资源: https://github.com/chentsulin/awesome-graphql graphql-apis : https://gi ...
- javaScript——原型继承四步曲
<script> //js模拟类的创建以及继承 //第一步:创建父类 function Parent(name){ this.name = name; } //给父类添加属性方法 Pare ...