您的位置:首页 > 其它

每天一道算法题(25)——字符串中连续出现次数最多的子串

2015-07-27 14:44 537 查看
#include"iostream"
#include"string"
using namespace std;

pair<string,int> fun(const string& str);
int _tmain(int argc, _TCHAR* argv[])
{
string str="abcbcbcabc";
pair<string,int> p=fun(str);
cout<<p.first<<": "<<p.second<<endl;
return 0;
}

pair<string,int> fun(const string& str){
if(str.empty())
return make_pair("a",0);

int count,max=0;
string substr,st;
for(int i=str.length();i>=1;i--)
for(int j=0;j<str.length()-i+1;j++){
count=0;
st=str.substr(j,i);
for(int k=0;k<str.length()-i+1;k++)
if(!st.compare(str.substr(k,i)))
count++;
if(count>max){
max=count;
substr=st;
}
}
return make_pair(substr,max);
}


注意: pair的使用,元素调用为first和second
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: