function findLongestSubstringWithoutRepeatingCharacters(str) {
const str_size = str.length;
let start = 0, end = 0;
let start_sub = 0, end_sub = 0;
let ASCII = Array(256).fill(0);
while (end < str_size) {
if (ASCII[str[end].charCodeAt(0)] > 0) {
while (str[start] != str[end]) {
ASCII[str[start].charCodeAt(0)] = 0;
start++;
}
start++;
}
else {
ASCII[str[end].charCodeAt(0)] = end + 1;
if (end - start > end_sub - start_sub) {
start_sub = start;
end_sub = end;
}
}
end++;
}
for (let i = start_sub; i <= end_sub; i++) {
console.log(str[i]);
}
}
const str = "xwwwqfwwxqwyq";
findLongestSubstringWithoutRepeatingCharacters(str);
/*
run:
x
q
w
y
*/