var longSubString = function(str) {
hash = [];
strArray = [];
let i = 0;
for (let char of str) {
//console.log(char);
if (strArray.includes(char)) {
hash.push(strArray.length + 1);
let tmpArray = [];
//console.log("Char: " + char + " in string.")
for (let j = strArray.length-1; j >= 0; j--) {
if (char === strArray[j]) {
//console.log("Char: " + j + " matches")
//console.log("StrArray Length: " + strArray.length);
strArray = tmpArray;
break;
} else {
tmpArray.push(strArray[j]);
}
}
}
strArray.push(char);
i++;
}
let maxValue = Math.max(...hash);
let returnValue = strArray.length > maxValue ? strArray.length : maxValue;
return returnValue;
}
console.log(longSubString('abccabd')); //4
console.log(longSubString('abccabb')); //3
console.log(longSubString('abcbbd')); //3
console.log(longSubString('cccccc')); //1
console.log(longSubString('abcbda')); //4
console.log(longSubString('')); //0
console.log(longSubString('a')); //4
console.log(longSubString("bpfbhmipx")); //7