NC142 最长重复子串

最长重复子串

http://www.nowcoder.com/questionTerminal/4fe306a84f084c249e4afad5edf889cc

NC142 最长重复子串

题目描述

一个重复字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串。
给定一个字符串,请编写一个函数,返回其最长的重复字符子串。
若不存在任何重复字符子串,则返回0。

想法

没想到什么特别的解法,直接暴力= = 题目中说是重复子串,其实规定了是重复一次的,多次的不算,所以暴力就o(N^3), 勉强接受了。

    bool judge(string& a,int s,int len)
    {
        for(int i=s;i<s+len;i++)
        {
            if(a[i]!=a[i+len])
                return false;
        }
        return true;
    }
    int solve(string a) {
        int n = a.size();
        int len=n/2;
        int max_len =0;

        for (int i=len;i>0;i--) {
            for (int s=0;s<=n-i-i;s++) {
                if (judge(a,s,i)) {
                    return 2*i;
                }
            }
        }
        return 0;
    }
全部评论

相关推荐

若怜君欢:驾驶证去掉吧,PPT啥的也去掉,本硕课程去掉,导师和研究方向去掉;加入本硕排名(好才写);技能栏加入你会的那些控制算法和滤波算法,这个比你会啥啥啥软件更有用;获奖写上去,奖学金啊,有没有专利啊之类的 电机和硬件这一块,属于传统制造业,制造业实习并不多。多投一些攒攒经验,有实习最好,没有也不需要焦虑(制造业实习其实除了转正,没多大用处) 最后,划重点,等秋招开始后,把你所有社交软件都发一份简历上去,并经常更新,找人内推你!
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务