给定一个字符串,找出不含有重复字符的最长子串的长度
示例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('') //先将字符串转换为数组
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) { //没有重复的存入arr
num.push(arr[j])
} else {
length.push(num.length) //有重复的记录最大长度存入num,清空num
num = []
break
}
}
}
length.push(num.length) //考虑到如果字符串的长度为1的情况下
length.sort(function(a,b){ //取得长度数组进行倒序排列,取最大值为最长长度
return b-a
});
console.log(length[0])
qinqin.gif
网友评论