#include <iostream>
#include <stdlib.h>
using namespace std;
void substr(char *a) //统计数组a中重复出现的最长的子序列
{
int n;
for (n = 0; a[n] != '\0'; ++n)
;
int count = 1;
for (int len = n - 1; len > 0; --len) //len:子串的长度
{
for (int begin = 0; begin <= n - 1 - len; ++begin) //begin:子串的首字符的位置
{
for (int match_begin = 1; match_begin <= n - len - begin;
++match_begin) //match_begin:匹配字符串与被匹配字符串的距离
{
int i;
for (i = begin; i < begin + len; ++i) //字符串匹配
{
if (a[i] != a[i + match_begin]) {
break;
}
}
if (i == begin + len) //匹配成功
{
++count; //统计匹配成功的次数
}
}
if (count >= 2) {
for (int i = 0; i < len; ++i) {
cout << a[begin + i];
}
return;
}
count = 1;
}
}
return;
}
int main(int argc, char* argv[]) {
char* a = (char*) malloc(100);
cout << "Input the string!" << endl;
cin>>a;
cout << a << endl;
substr(a);
cout << endl;
return 0;
}