给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其
长度为 3。
示例 2:
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b"
,所以其长度为 1。
var lengthOfLongestSubstring = function(s) {
var str="" //存放无重复子串
var size=0 //当前最长无重复子串的长度
var startMax="" // 开头最大的
for(var i=0,len=s.length;i<len;i++){
var char=s.charAt(i)
var index=str.indexOf(char)
if(index==-1){
str+=char
size=size<str.length?str.length:size
}else{
if(str.length > startMax.length){
startMax = str
}
str=str.substr(index+1)+char
}
}
console.log(str)
console.log(startMax)
if(startMax.length > str.length){
str = startMax
}
return str + "," + size
};
lengthOfLongestSubstring("abcddab")
gasstation.6ea7639acd60a72570df.js:139 dab
gasstation.6ea7639acd60a72570df.js:139 abcd
"abcd,4"
原文地址:LeetCode3.无重复字符的最长子串 JavaScript - 小李HH - 博客园
原文在设计上有缺陷,没有考虑到前置的问题