leetcode--js--Longest Substring Without Repeating Characters

问题描述:

Given a string, find the length of the longest substring without repeating characters.

Examples:

Given "abcabcbb", the answer is "abc", which the length is 3.

Given "bbbbb", the answer is "b", with the length of 1.

Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

问题思路:

(1)审清题目:最长不重复的子串

(2)将第i个字符放在数组arr中,判断下一个字符有没有在arr中出现,如果出现,则重新从i-len+1处开始。

(3)需要记录下每次循环的arr的最大长度

code:

var lengthOfLongestSubstring = function(s) {
    var arr=[];
    var str = s.split('');
    var max = 0;
    var len = 0; //arr[]数组的长度
    for(var i=0;i<str.length;i++){
        if(arr.indexOf(str[i])==-1){
            arr.push(str[i]);
            len = len + 1;
            max = max > len ? max : len;
        }else{
            i = i - len + 1;
            arr.splice(0, len, str[i]);
            len = 1;
        }
    }
    return max;    
};
原文地址:https://www.cnblogs.com/hiluna/p/9313020.html