最长无覆盖子串
小于 1 分钟
最长无覆盖子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子字符串是 "abc",所以其长度为 3。
滑动窗口解决
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let left = 0, right = 0;
const window = {}
let result = 0
while(right < s.length){
const c = s[right]
window[c] = window[c] ? window[c] + 1 : 1
right++
while(window[c]>1){
const f = s[left]
left++
window[f]--
}
result = Math.max(result, right-left)
}
return result
};