function findLongestSubstring(str) {
let a_pointer = 0;
let b_pointer = 0;
let max = 0;
const hash = new Set();
while (b_pointer < str.length) {
if (!hash.has(str[b_pointer])) {
hash.add(str[b_pointer]);
b_pointer++;
max = Math.max(hash.size, max);
} else {
hash.delete(str[a_pointer]);
a_pointer++;
}
}
return max;
}