How to find the longest substring without repeating characters in JavaScript

1 Answer

0 votes
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"

*/

 



answered Jul 18, 2023 by avibootz
...