var lengthOfLongestSubstring = function (s) {
let i = 0
let res = 0
const map = new Map()
for (let j = 0; j < s.length; j++) {
const index = map.get(s[j])
if (index !== undefined && index >= i) {
i = index + 1
}
res = Math.max(res, j - i + 1)
map.set(s[j], j)
}
return res
}
var lengthOfLongestSubstring = function (s) {
let len = s.length
let left = 0,
right = 0
let answer = 0
const set = new Set()
while (right < len) {
if (set.has(s[right])) {
set.delete(s[left])
left++
} else {
set.add(s[right])
right++
}
answer = Math.max(set.size, answer)
}
return answer
}
console.log(lengthOfLongestSubstring("abcabcbb"))