- 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
假定右元素下表为right,通过right++遍历整个数组。采用滑动窗口的思想,左滑到右,遍历完整个数组,每次记录窗口最大宽度。最后的宽度就是题解。
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
if(s.length === 0) return 0
if(s.length === 1) return 1
let left = 0
let right = 0
let max = 0
let set = new Set(s[0])
while (right < s.length-1) {
if (set.has(s[right+1])) {
set.delete(s[left++])
} else {
set.add(s[++right])
max = Math.max(max, set.size)
}
}
return max
};