function findLongestSubstringWithoutRepeatingCharacters(str: string) {
const str_size: number = str.length;
let start: number = 0, end: number = 0;
let start_sub: number = 0, end_sub: number = 0;
let ASCII: number[] = 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: number = start_sub; i <= end_sub; i++) {
console.log(str[i]);
}
}
const str = "xwwwqfwwxqwyq";
findLongestSubstringWithoutRepeatingCharacters(str);
/*
run:
"x"
"q"
"w"
"y"
*/