字符串中重复出现的最长字串

来源:互联网 发布:如何处理tsv数据 编辑:程序博客网 时间:2024/05/17 11:33

编程:输入一行字符串,找出其中出现的相同且长度最最长的字符串,输出它及其首字符出现的位置。例如,“yyabcdabjcabceg",输出结果为abc和3.

#include <iostream>#include <string>#include <vector>using namespace std;pair<int,string> fun(const string& str){vector<string> substrs;string substr;int i,j,k;int max=0,num=0;int len=str.length();for(i=0;i<len;i++)substrs.push_back(str.substr(i,len-i));for(i=0;i<len;i++)for(j=i+1;j<len;j++){for(k=j;k<len;k++)if(substrs[i].substr(0,j-i)==substrs[k].substr(0,j-i)){if((j-i)>max) {max=j-i;substr=substrs[i].substr(0,j-i);num=i;}break;}}return make_pair(num+1,substr);}int main(){string str;pair<int,string > rs;while(cin>>str){rs=fun(str);cout<<rs.second<<':'<<rs.first<<endl;}}


0 0
原创粉丝点击