#include<iostream>
#include<algorithm>
#include<stdio.h>
#include <vector>
#include<string>
#include<sstream>
#include<map>
#include<set>
#include <functional> // std::greater
using namespace std;
int getCommon(string s1, string s2)
{
int i = 0;
for (; i < s1.size()&& i<s2.size(); ++i)
{
if (s1[i] != s2[i])
break;
}
return i;
}
int main()
{
string str;
cin >> str;
vector<string> strs;
for (int i = 0; i < str.size(); ++i)
{
strs.push_back(str.substr(i));
}
sort(strs.begin(),strs.end());
int maxlen = 0;
string res;
for (int i = 1; i < strs.size(); ++i)
{
int len = getCommon(strs[i-1], strs[i]);
if (maxlen < len)
{
maxlen = max(maxlen, len);
res = strs[i - 1].substr(0,len);
}
}
cout << res<<"\n" << maxlen << endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考