无重复字符的最长子串

171 阅读1分钟

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

js代码:

var lengthOfLongestSubstring = function (s) {
            var arr1 = arr1=s.split("") //将字符串分割成数组
            var arr2 = [] //创建一个空数组
            var L = 0 //将要得到的子串长度
            for (let i = 0; i < arr1.length; i++) { //从数组的第一个元素开始
                for (let j = i; j < arr1.length; j++) { 
                   if(arr2.indexOf(arr1[j])==-1){ //如果元素内容不在arr2中则将元素添加到arr2
                       arr2.push(arr1[j])
                       
                   }else{
                       if(L<arr2.length){  //如果发现相同的元素就记录下arr2.length与子串的长度相同
                           L=arr2.length   //L取最大值
                       }
                       arr2=[]             //重新将arr2清空
                       break               //跳出循环到数组的下一个元素
                   }
                }
            }
            if (L < arr2.length) {
                L = arr2.length   //如果字符串只有一位需要额外判断
            }
            return L
        };

题目来源: 力扣