leetcode-无重复字符的最长子串 -js实现
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/725c063dff6722d2f90d104ab3e9086d.png)
解题思路
1、创建一个set
2、2个指针i和j,初始都指向字符串的开头,i随着for循环遍历
3、如果set里面没有s[i],说明目前为止还没有重复的字符串,把s[i]添加到set里面,然后更新最大不重复自妇产的数量
4.如果set里面有s[i],则从set里开始删除s[j],并且递增j,再检查set里是否是s[i],如此反复知道set里面没有重复的s[i]为止
5.重复步骤3和4,直到遍历完整个字符串
var lengthOfLongestSubstring = function(s) {
const sett = new Set();
let j = 0,
maxLength = 0;
if (s.length == 0) {
return 0
}
for (let i = 0; i < s.length; i++) {
if (!sett.has(s[i])) {
sett.add(s[i])
maxLength = Math.max(maxLength, sett.size)
console.log('set', sett)
console.log('maxLength', maxLength)
} else {
while (sett.has(s[i])) {
sett.delete(s[j])
j++
}
sett.add(s[i])
}
}
return maxLength
};
console.log(lengthOfLongestSubstring('abca'))