题解 | #最长重复子串#

最长重复子串

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

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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