美文网首页
无重复字符的最长子串

无重复字符的最长子串

作者: GGatsby | 来源:发表于2019-03-11 17:56 被阅读0次

给定一个字符串,请你找出其中不含有重复字符的最长子串 的长度。

示例 1:

输入: "abcabcbb"

输出: 3

解释:因为无重复字符的最长子串是"abc",所以其长度为 3。

示例 2:

输入: "bbbbb"

输出: 1

解释: 因为无重复字符的最长子串是"b",所以其长度为 1。

算法如下:

在保证当前字符串无重复字符的情况下,比较下一个字符是否已在当前字符串中。

学名叫做滑动窗口

/**

* @param {string} s

* @return {number}

*/

var lengthOfLongestSubstring = function(s) {

    var len = s.length;

    var max = 0;

    var i = 0;

    var j = 0;

    while(i < len && j < len) {

        var temp = s.substring(i, j);

        if(s[j] && temp.indexOf(s[j]) == -1) {

            var m = j-i+1;

            max = m>max?m:max;

            j++;

        } else {

            i++;

        }

    }

    return max;

};

相关文章

网友评论

      本文标题:无重复字符的最长子串

      本文链接:https://www.haomeiwen.com/subject/mgobpqtx.html