文章

1

粉丝

70

获赞

0

访问

2.3k

头像
重复串查找问题
我要提问
发布于2023年3月20日 19:25
阅读数 2.3k

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

没看懂这段代码的机理,求大神解释

登录查看完整内容


登录后发布评论

2 条评论
admin SVIP
2023年3月20日 21:41

看judge函数的功能,应该是在字符串里找下标从s开始长度为len的重复串。

如果找到了返回1,找不到返回0。

solve函数里外层for枚举字符串的长度,内层for枚举起点。

看这个功能应该是找字符串a里面的最长的连续不重叠的两个相同子串的总长度。

赞(0)

司马昕 : 回复 admin: 好的,谢谢大佬

2023年4月1日 16:08