题解 | #最长重复子串#

最长重复子串

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

  1. 双指针思路,从i从中间开始,然后j每次从头开始。向后来判断相同字母的个数,如果不同的话,立马要把他设置为0. 如果 hyper ==i 得时候,立马返回就行了。(双指针规律总结)
class Solution {
public:
    int solve(string a)
    {
        int n = a.length(), hyres = 0;
        for(int i = n / 2; i > 0; --i)
        {   //枚举长度
            for(int j = 0; j < n - i; ++j)
            {   //枚举起点
                if(a[j] == a[i + j])
                {
                    ++hyres; // 满足判断条件,hyres加一
                }
                else
                {
                    hyres = 0; // 不满足条件则重置长度
                }
                if(hyres == i) return i * 2;
            }
        }
        return 0;
    }
};
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论
牛逼 看懂了 我傻了
2 回复 分享
发布于 2022-03-07 22:36
这个n-i 我看了半小时,愣是没看懂是咋回事。。。
点赞 回复 分享
发布于 2022-03-02 22:36

相关推荐

比亚迪汽车新技术研究院 硬件工程师 总包21左右 硕士
点赞 评论 收藏
分享
我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
4 收藏 评论
分享
牛客网
牛客企业服务