輸入一行字符串,找出其中的相同且長度最長的字符串P227

#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;
}

發佈了231 篇原創文章 · 獲贊 36 · 訪問量 142萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章