题目描述:
求字符串中出现次数最多的子串的出现次数。
例如字符串abcbcbcabc,出现次数最多的子串是bc,出现次数为4
思路:利用后缀数组:
abcbcbcabc 第0个
bcbcbcabc 第1个
cbcbcabc 第2个
bcbcabc 第3个
cbcabc 第4个
bcabc 第5个
cabc 第6个
abc 第7个
bc 第8个
c 第9个
过程:先从第0个数组取出a,然后和第1个数组的b比较,发现不相等,然后取ab,abc,abcb....这一趟取完后,又从第1个后缀数组开始取,取b,bc,bcb,bcbc...
#include<iostream>
#include<string>
#include<vector>
using namespace std;
pair<int, string> fun(const string &str)
{
vector<string> substrs;
int len = str.length();
string substring;
int maxcount(0);
//后缀数组
cout << "the string is:" << str << endl;
cout << "the substrings are as follows:" << endl