#include <iostream>
#include <string>
using namespace std;
//输入一行字符串,找出其中的相同且长度最长的字符串P227
pair<string,int> fun(string s){
string str=s;
string tem;
int maxlen=0;
pair<string,int> res;
//双重循环+长度判断取出字符串的所有子串
for (int i=str.length()-1;i>0;i--)
{
for (int j=0;j<str.length();j++)
{
if(i+j<=str.length()){
size_t t=0;
size_t num=0;
tem=str.substr(j,i);
t=str.find(tem);
num=str.rfind(tem);
//如果正查和反查的位置不同,则必重复出现
if (t!=num)
{
int len=tem.length();
if(len>maxlen){
maxlen=len;
res.first=tem;
res.second=t+1;
}
}
}
}
}
return res;
}
int main(){
string str="yyyabcdababjcabcegabc";
pair<string,int> rs=fun(str);
cout << rs.first << "---" << rs.second << endl;
return 0;
}
输入一行字符串,找出其中的相同且长度最长的字符串P227
最新推荐文章于 2021-12-18 15:57:20 发布