练手的小程序,不写注释了
#include<iostream>
#include<assert.h>
#include<string>#include<utility>
#include<vector>
using namespace std;
void main()
{
bool equal = false;
unsigned long int i,j,max = 0;
string str = "abcdcbababccabccddemmmmmcdfabedsb",v_str;
vector<pair<string,unsigned long int>> vec;
vector<pair<string,unsigned long int>>::iterator iter;
for(i = 0; i < str.size();i++)
{
for(j = 1;i+j <= str.size();j++)
{
v_str = str.substr(i,j);
equal = false;
for(iter = vec.begin();iter != vec.end();iter++)
{
if( iter->first == v_str )
{
equal = true;
(iter->second)++;
break;
}
}
if(equal == false)
{
vec.push_back(make_pair(v_str,1));
iter = vec.end() - 1;
}
if(max < iter->second)
{
max = iter->second;
}
cout << iter->first << endl;
cout << iter->second << endl;
}
}
for(iter = vec.begin();iter != vec.end();iter++)
{
if(iter->second == max)
{
cout << " the biggest substring is " << endl;
cout << iter->first << endl;
cout << iter->second << "totally times " << endl;
}
}
}