文章
1
粉丝
70
获赞
0
访问
2.8k
bool judge(string &a,int s,int len)
{
for(int i=s;i<s+len;i++){
if(a[i]!=a[i+len])return 0;
}
return 1;
}
int solve(string a) {
// write code here
int len=a.size();
for(int i=len/2;i;i--)
{
for(int s=0;s<=len-i*2;s++)
{
if(judge(a,s,i))
return 2*i;
}
}
return 0;
}
没看懂这段代码的机理,求大神解释
登录后发布评论
看judge函数的功能,应该是在字符串里找下标从s开始长度为len的重复串。
如果找到了返回1,找不到返回0。
solve函数里外层for枚举字符串的长度,内层for枚举起点。
看这个功能应该是找字符串a里面的最长的连续不重叠的两个相同子串的总长度。