给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度
示例
输入:s = 'abcabcbb'
输出:3
最长子串是abc
解题方法一:滑动窗口
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let maxL = 0; // 最大长度
let occ = new Set(); // hash
let rk = 0; // 右指针
for (let i = 0; i < s.length; i ++) {
// 滑块左侧往右移动
if (i != 0) {
occ.delete(s.charAt(i-1));
}
// 只要没重复,有指针一直往右偏移
while (rk < s.length && !occ.has(s.charAt(rk))) {
occ.add(s.charAt(rk));
rk++;
}
maxL = Math.max(maxL, occ.size)
}
return maxL;
};