hdu 2594
来源:互联网 发布:淘宝达人怎么去找卖家 编辑:程序博客网 时间:2024/06/05 05:24
Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.
Marge: Yeah, what is it?
Homer: Take me for example. I want to find out if I have a talent in politics, OK?
Marge: OK.
Homer: So I take some politician’s name, say Clinton, and try to find the length of the longest prefix
in Clinton’s name that is a suffix in my name. That’s how close I am to being a politician like Clinton
Marge: Why on earth choose the longest prefix that is a suffix???
Homer: Well, our talents are deeply hidden within ourselves, Marge.
Marge: So how close are you?
Homer: 0!
Marge: I’m not surprised.
Homer: But you know, you must have some real math talent hidden deep in you.
Marge: How come?
Homer: Riemann and Marjorie gives 3!!!
Marge: Who the heck is Riemann?
Homer: Never mind.
Write a program that, when given strings s1 and s2, finds the longest prefix of s1 that is a suffix of s2.
Marge: Yeah, what is it?
Homer: Take me for example. I want to find out if I have a talent in politics, OK?
Marge: OK.
Homer: So I take some politician’s name, say Clinton, and try to find the length of the longest prefix
in Clinton’s name that is a suffix in my name. That’s how close I am to being a politician like Clinton
Marge: Why on earth choose the longest prefix that is a suffix???
Homer: Well, our talents are deeply hidden within ourselves, Marge.
Marge: So how close are you?
Homer: 0!
Marge: I’m not surprised.
Homer: But you know, you must have some real math talent hidden deep in you.
Marge: How come?
Homer: Riemann and Marjorie gives 3!!!
Marge: Who the heck is Riemann?
Homer: Never mind.
Write a program that, when given strings s1 and s2, finds the longest prefix of s1 that is a suffix of s2.
The lengths of s1 and s2 will be at most 50000.
clintonhomerriemannmarjorie
0rie 3
题意概括:找出第一个字符串的前缀和第二个字符串的后缀相同的最大长度。
解题思路:以s2为主串,s1为模式串进行比较,只用 i 控制结束,直到主串比较完为止,此时的j就是我们需要的最大长度。
代码:
#include<stdio.h>#include<string.h>#define N 55000int next[N];void GetNext(char p[]){int l=strlen(p);int i=0;int j=-1;next[0]=-1;while(i<l){if(j==-1||p[i]==p[j]){i++;j++;next[i]=j;}else{j=next[j];}}}void KMP(char s[],char p[]){GetNext(p);int l1=strlen(s);int l2=strlen(p);int i=0;int j=0;while(i<l1){if(j==-1||s[i]==p[j]){i++;j++;}else{j=next[j];}}if(j!=0){for(i=0;i<j;i++){printf("%c",p[i]);}printf(" ");}printf("%d\n",j);}int main(){char s[N],p[N];while(gets(s)!=NULL){gets(p);KMP(p,s);}return 0;}
阅读全文
0 0
- hdu 2594
- hdu 2594
- hdu 2594
- HDU 2594
- hdu 2594
- HDU 2594
- HDU 2594
- hdu 2594
- hdu 2594
- 两个kmp hdu 2594 & hdu 2087
- HDU 2594 子序列
- 【HDU 2594 KMP】
- hdu 2594 kmp
- hdu kmp 2594
- HDU 2594 kmp
- HDU 2594 (KMP入门)
- HDU 2594 (KMP)
- HDU 2594 (KMP)
- 2017年的六大顶级开源项目
- 计算几何常用算法总结
- mysql用户访问权限管控
- ORA-19905: log_archive_format must contain %s, %t and %r故障原因及恢复
- org.hibernate.HibernateException: save is not valid without active transaction
- hdu 2594
- 汉语中的26种结构歧义
- 提高mysql千万级大数据SQL查询优化几条经验(1)
- DLL 几种类型
- TP5常量参考
- CgridCtrl使用详解
- How to invoke a trained TensorFlow model from Java programs
- Ubuntu开发ruby on rails(使用windows上mysql)ip地址变动
- CentOS7 Linux下安裝python-pip