本文主要是介绍深信服,最长重复子串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
编程 最长重复子串(子串中有重复子串,且首尾相连)长度 ( abcab , 0; abccab ,2 ; abbbcbbc ,6)
#include <iostream>
#include <string>
using namespace std;
int getCommLen(string str)
{
int npos ;
if( str.size()%2 == 0 )
{
npos = str.size()/2 ;
if( str.substr(0,npos) == str.substr(npos,npos) )
return npos*2 ;
}
return 0 ;
}
int main()
{
string str ="abbbbbbbbbbbsssssss" ;
int maxLen = 0 ;
for( int i=str.size() ; i>=1 ; --i )
{
for( int j= 0; str.size()-j>=i ; ++j )
{
string str1 = str.substr( j, i) ;
maxLen = getCommLen(str1) ;
if ( maxLen )
{
cout << maxLen << endl ;
return maxLen ;
}
}
}
cout << maxLen << endl ;
return 0;
}
这篇关于深信服,最长重复子串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!