給定一個字符串配并,找出不含有重復(fù)字符的最長子串的長度
示例1:
str = "abcabcbb"
輸出 :abc 最長長度為3
示例2 :
str = "bbbbb"
輸出 :b 最長長度為1
示例3 :
str = "pwwkew"
輸出 :wke 最長長度為3
上代碼:
var str = "abcabcbb"
var str2 = "bbbbb"
var str3 = "pwwkew"
var arr = str3.split('') //先將字符串轉(zhuǎn)換為數(shù)組
var num = []
var length = []
for (let i = 0; i < arr.length; i++) {
for (let j = i; j < arr.length; j++) {
if (num.indexOf(arr[j]) == -1) { //沒有重復(fù)的存入arr
num.push(arr[j])
} else {
length.push(num.length) //有重復(fù)的記錄最大長度存入num卵佛,清空num
num = []
break
}
}
}
length.push(num.length) //考慮到如果字符串的長度為1的情況下
length.sort(function(a,b){ //取得長度數(shù)組進行倒序排列跟畅,取最大值為最長長度
return b-a
});
console.log(length[0])
qinqin.gif