剑指 Offer II 016. 不含重复字符的最长子字符串

剑指 Offer II 016. 不含重复字符的最长子字符串

网易雷火前端开发 笔试题第2题

解题思路:

1、定义两个变量分别为maxstr 代表返回长度 新的字符串

2、遍历 老字符串 使用indexof判断新字符串是否存在老字符串所有值

如有 返回下标  如无 返回-1

3、当存在下标 新字符串删除 下标+1个字符(substring

4、将遍历的字符通通拼接到新字符串

5、递归取最大长度

参考代码:

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let max = 0;
    let str ='';
    for(let i =0;i<s.length;i++){
        let index = str.indexOf(s[i]);
        if(index !==-1){
            str = str.substring(index+1)
        }
        str+=s[i];
        max = Math.max(max,str.length)
    }
    return max
};

运行结果:

 感悟:

1、此题还可以使用 常见的滑动窗口解法

2、大厂笔试题和剑指offer算法题刷的太少了,缺乏系统的学习和练习

3、逻辑思维依旧没有打开,思维过于局限!!多刷题吧

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⁡⁢⁡⁢⁠Ac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值