#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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.