[UVA1262]Password
2015-08-28 19:48
417 查看
Password
Description
Asterix, Obelix and their temporary buddies Suffix and Prefix has finally found the Harmony temple. However, its doors were firmly locked and even Obelix had no luck opening them.
A little later they found a string s, carved on a rock below the temple's gates. Asterix supposed that that's the password that opens the temple and read the string aloud. However, nothing happened. Then Asterix supposed that a password is some substring t of the string s.
Prefix supposed that the substring t is the beginning of the string s; Suffix supposed that the substring t should be the end of the string s; and Obelix supposed that t should be located somewhere inside the string s, that is, t is neither its beginning, nor its end.
Asterix chose the substring t so as to please all his companions. Besides, from all acceptable variants Asterix chose the longest one (as Asterix loves long strings). When Asterix read the substring t aloud, the temple doors opened.
You know the string s. Find the substring t or determine that such substring does not exist and all that's been written above is just a nice legend.
Input
You are given the string s whose length can vary from 1 to 106 (inclusive), consisting of small Latin letters.
Output
Print the string t. If a suitable t string does not exist, then print "Just a legend" without the quotes.
Sample Input
Input
Output
Input
Output
Sample Output
Hint
找字符串中是否存在前后缀相同的字符串,KMP pre数组应用
Description
Asterix, Obelix and their temporary buddies Suffix and Prefix has finally found the Harmony temple. However, its doors were firmly locked and even Obelix had no luck opening them.
A little later they found a string s, carved on a rock below the temple's gates. Asterix supposed that that's the password that opens the temple and read the string aloud. However, nothing happened. Then Asterix supposed that a password is some substring t of the string s.
Prefix supposed that the substring t is the beginning of the string s; Suffix supposed that the substring t should be the end of the string s; and Obelix supposed that t should be located somewhere inside the string s, that is, t is neither its beginning, nor its end.
Asterix chose the substring t so as to please all his companions. Besides, from all acceptable variants Asterix chose the longest one (as Asterix loves long strings). When Asterix read the substring t aloud, the temple doors opened.
You know the string s. Find the substring t or determine that such substring does not exist and all that's been written above is just a nice legend.
Input
You are given the string s whose length can vary from 1 to 106 (inclusive), consisting of small Latin letters.
Output
Print the string t. If a suitable t string does not exist, then print "Just a legend" without the quotes.
Sample Input
Input
fixprefixsuffix
Output
fix
Input
abcdabc
Output
Just a legend
Sample Output
Case 1: 13 Case 2: 6
Hint
找字符串中是否存在前后缀相同的字符串,KMP pre数组应用
#include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <iostream> #include <cmath> #include <queue> #include <map> #include <stack> #include <list> #include <vector> using namespace std; const int maxn = 1000010; int nb; char b[maxn]; int pre[maxn]; int vis[maxn]; //b是模式串,a是目标串 void getpre(char *b, int *pre) { int j, k; pre[0] = -1; j = 0; k = -1; while(j < nb) { if(k == -1 || b[j] == b[k]) { j++; k++; pre[j] = k; } else { k = pre[k]; } } } int main() { // freopen("in", "r", stdin); while(~scanf("%s", b)) { memset(pre, 0, sizeof(pre)); memset(vis, 0, sizeof(vis)); nb = strlen(b); if(nb < 3) { printf("Just a legend\n"); continue; } getpre(b, pre); for(int i = 0; i < nb; i++) { vis[pre[i]] = 1; } int flag = 0; while(pre[nb]) { if(vis[pre[nb]]) { printf("%.*s\n", pre[nb], b); flag = 1; break; } nb = pre[nb]; } if(!flag) { printf("Just a legend\n"); } } return 0; }
相关文章推荐
- 华为oj:名字的漂亮度
- 软件测试质量和效率评价之我见
- git 一直无法push的解决办法
- iOS 笔记五:手势识别 UIGestureRecognizer
- Java之旅EJB(1)——兵未动,粮草先行(jboss)
- Android中PopupWindow的使用
- MSSQLSERVER数据库- 作业调度定时备份数据库
- oracle客户端连接linux服务器上的oracle
- 一些 Quality Center引发的测试管理思考
- HDU 1533(最小费用流)
- DevExpress TreeList用法总结
- java IO学习笔记
- 【C语言连载六】--------变量、修饰词、结构体、枚举、typedef
- 机械臂运动学入门(二)
- 使用RecyclerView碰到的若干问题
- http://blog.jobbole.com/84323/
- 总结scrum之旅读书笔记
- CentOS 安装中文输入法
- 初识OPPM一页纸项目管理
- 安卓属性动画的总结